問題タブ [database-mail]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - MSSQL 2005 データベース メールへのアクセスを設定する方法を教えてください。
MSSQL 2005 内でデータベース メールをセットアップしました。サーバーの管理者アカウントから、SQL Server エージェント ジョブを介して電子メールを送信できました。しかし、Web アプリケーションのデータベースにアクセスできるログイン経由でメールを送信しようとすると、メールを送信できません。
データベース メールへのアクセスを設定する最適な方法は何ですか?
メールを送信したい 2 つのシナリオがあります。
- SQL Server エージェントを介してジョブをスケジュールし、何らかのプロセスを実行してから電子メールを送信するストアド プロシージャを実行します。(これは問題ありませんでした)
- 電子メールを送信できる別のストアド プロシージャを呼び出す Web アプリケーションからストアド プロシージャを呼び出します。(これは私の権限の問題です)
可能な解決策
ログインにアクセス許可を付与する唯一の方法は、ログインをmsdbデータベースにマップし、 publicおよびDatabaseMailUserRoleを付与することです。これにより、msdbデータベースへのアクセスが大幅に増えると思われるため、これは非常に懸念されます。
送信したい電子メールをテーブルに保存し、SQL Server エージェント ジョブでそのテーブルを頻繁に調べて、キューに入っている電子メールを送信します。このように、Web アプリケーションのデータベース ログインは [msdb].[dbo].[sp_ send _dbmail] 呼び出しを実行しないため、 msdbデータベースへのアクセス許可は必要ありません。
他の解決策はありますか?
c# - C#を使用してDatabaseMailを介して電子メールを送信する
C#でデータベースメール(SQL Serverに統合されている)を使用して電子メールを送信するにはどうすればよいですか?役に立つ記事など、徹底的に役立つものが見つかりませんでした。
sql - 各結果行ごとの SQL 実行
少しの間グーグルで調べてみましたが、これに対する答えが見つからないようです。SQL Server 2005 のデータベース メールをストアド プロシージャで使用しようとしています。クエリの行ごとに個別のメールを送信し、各メールは行に存在するアドレスに応じて送信します。
たとえば、ID、CustomerName、CustomerEmail、ProductName、ProductCategoryというデータを含む 15 ~ 50 行の製品注文があるとします。各行には、顧客の電子メールと製品カテゴリが含まれています。製品カテゴリに応じて、さまざまな会社の人に実際の注文メールを送信するだけでなく、自分の行に固有の個人データを使用して、これらの各顧客に確認メールを送信する必要があります。
このようにデータベース メールを動的に送信するにはどうすればよいですか?
前もって感謝します!
編集 1:データセットなどはオプションではありません。これは SQL Server 2005 でのみ実行する必要があります。その場合、カーソルを調べる必要があると思います。
sql-server-2005 - データベースのメール設定を構成する
ユーザーにログインした後、管理者からデータベースメール設定を構成する場所が見つからないため、Sharepointで作成されたデフォルトのデータベースインスタンスでデータベースメール設定を構成してデータベースからメールを送信するにはどうすればよいですか。
.net - SQL Server でデータベース メールを構成して実行する方法
SQL Server 2008 でデータベース メールを有効にして実行する方法は? 私はそれが必要であることを知っています
- サービス ブローカーの有効化
- SMTP の設定 (メールサーバーが必要です)
- 構成ストアド プロシージャの使用
アプリケーションとデータベース メールの関係がわかりません。
RollBackおよびCommit Transactionでデータベース メールを有効にする方法は? (すべての SP ではなく、一部のみ)
更新: データベース メールは、構成で指定した人にメール (または SMS) を自動的に送信するサービスです。このイベント (メールの送信) がいつどこで発生するかを指定できます。したがって、これをどのように構成できるかを確認したいと思います。
sql - sp_notify_operator: 指定された @operator_name は存在しません (存在します!)
OK、だから私はここで怒っていると思う! ここにいます。
SQL Server 2008: データベース メールをセットアップし、自分自身にテスト メールを送信しました。シンプルで、うまく機能します。
「Tom」というオペレーターを作成しました。私はそれに電子メールアドレスを与えました(しかし、他には何もありません)。
ただし、このコマンドを実行すると:
EXECUTE msdb.dbo.sp_notify_operator @name=N'Tom',@subject=N'Test データベース メッセージ',@body=N'Testy Test Test'
...私はこれを取得します:
メッセージ 14262、レベル 16、状態 1、プロシージャ sp_verify_operator_identifiers、行 51 指定された @operator_name ('Tom') は存在しません。
そのエラーメッセージは、私が見なければならない何か他のものを隠していますか? SSMS には間違いなく演算子が表示されますが、演算子をリストする sproc がある場合は、喜んで実行して、実際にそこにあるかどうかを確認します。
次はどこに行こうかちょっと迷っています。SQL Server は、私が存在しないと確信しているようです!
sql-server-2008 - データベースメールのスクリプト設定
SQL Server 2008 GUIを使用して、テストサーバーにデータベースメールプロファイルとアカウントを設定しました。これらを本番データベースに複製したいと思います。
これを行うためのスクリプトを生成する方法はありますか?
sql - MSDB.dbo.sysmail_faileditems に行がありません
最初に、作成する必要があるレポートのコンテンツをクエリしようとすると、「SELECT 権限がありません」というエラーが発生しました。そのため、MSDB でアカウントに付与DatabaseMailUserRole
しました。列は表示されますが、存在することがわかっているデータはありません。
アカウントがデータを表示するために行う必要があるのは何ですか?
sql-server-2005 - SQL Server 2005 の sp_send_dbmail (データベース メール) から一部の電子メールのみが正常に送信される
sp_send_dbmail
SQL Server 2005 で使用しているときに何が起こっているかについての答えを見つけたいと思っています。
これはシナリオです:
SQL サーバーにメール機能を設定しました。あるテーブルに電子メール アドレスがあり、別のテーブルにコンテンツがあります。テーブルで見つかったアドレスごとに、sp_send_dbmail
ストアド プロシージャを使用して、そのアドレスへの新しいメッセージをコンパイルします。
後で上記を実行する独自の SP を実行すると (電子メールを受け取り、受信者への新しいメッセージをコンパイルします)、サーバー上で DatabaseMail90.exe が起動し、電子メールが送信されます。しかし、これが厄介なところです。メールの一部が直接配布されているためです。おそらく同じドメインとネットワーク上にあるためです。複雑なのは、すべてではありませんが、ほとんどの外部メールが msdb.dbo.sysmail_mailitems テーブルでエラーを受け取ることです。しかし、混乱はここで止まりません。msdb.dbo.sysmail_mailitems テーブルにエラーが報告されているにもかかわらず、一部の電子メールは配信されています。
これは、送信済みメッセージのステータスを表示するために使用するクエリです。
データベース メールのシステム パラメータを次のように構成しました。
- アカウントの再試行回数: 3
- アカウント再試行遅延 (秒): 30
- 最大ファイル サイズ (バイト): 50000000 (これほど大きくなることはありませんが、安全のために)
- 添付禁止拡張子:exe、dll、vbs、js
- データベース メール実行可能ファイルの最小有効期間 (秒): 300
- ロギング レベル: 拡張
私のデータベース メール プロファイルは公開されており、既定のプロファイルとして設定されています。また、既存のプロファイルを設定しました。
これは、すべてを実行してメールの送信を開始する SP です。
したがって、疑問は残ります。電子メールをより速く配信するためにセットアップを微調整する方法はありますか? また、本当の質問ですが、電子メールの送信時にエラーが時々発生するのはなぜですか? 送信先のメールアドレスに問題はありません。コードまたはデータベース メール構成で考えられるエラーを見つけるには、どこを参照すればよいですか? このようなことを経験したことがありますか?
msdb.dbo.sysmail_mailitems テーブルのエラーの説明は何ですか? つまり、外部ドメインにエラーが報告されていますが、メールは配信されています。または、メールが配信されない場合、問題の原因をどこで調べればよいでしょうか。
html - SQL データベース メールを取得して 2 列の HTML テーブルをフォーマットする
SQL Server 2005 を使用しており、HTML 形式のデータベース メールを送信しています。必要な結果が得られていますが、テーブルを希望どおりにフォーマットするのに苦労しています。
テーブルの行に入力する 2 つの別個の SELECT ステートメントが実行されています。問題は、それらが互いに関連しているため、並べて表示したいのですが、一方が他方の上にしか表示されないことです。大きなテーブル内の 2 つのテーブルにそれらを配置しようとしましたが、移動しません。私は約 10 年間 HTML を使用していないので、おそらくスクリプト自体よりも HTML に問題があると思われます。
2 つの select ステートメントを含む @body セクションを次に示します。