文書番号: 312839 - 最終更新日: 2007年8月13日 - リビジョン: 11.3 [HOWTO] SQL Server で SQL Mail を使用せずに電子メールを送信する方法目次概要
SQL Mail では、Microsoft SQL Server から電子メールの送信および読み取りを行う簡単な方法が提供されています。ただし、SQL Mail は MAPI アプリケーションであるため、MAPI サブシステムがサーバー上に存在する必要があります。Microsoft Windows NT 4.0 では、Windows Messaging をインストールすると MAPI サブシステムがインストールされますが、Microsoft Windows 2000 には MAPI サブシステムが用意されていません。このため、SQL Mail を使用する場合、Microsoft Outlook などの MAPI クライアントをインストールする必要があります。
他の方法を使用して、SQL Server から直接 SMTP (Simple Mail Transfer Protocol) 電子メールを送信することができます。たとえば、CDONTS (Collaboration Data Objects for NT Server) または CDOSYS (Collaboration Data Objects for Windows 2000) を sp_OA という SQL Server OLE オートメーション ストアド プロシージャと組み合わせて使用できます。この資料では、これらの技法を使用してインターネット メール サーバーに電子メールを送信する方法のサンプルを示します。この資料に記載されている方法に修正を加えて、より堅牢なメール システムを構築することができます。たとえば、エラー処理コードの追加などが考えられます。この資料にサンプルとして記載されている方法では、電子メールの読み取りおよび電子メールの処理は実行されません。 注 : これらのプログラミングの例では、Transact-SQL で CDO オブジェクト モデルを呼び出すための方法を説明します。実際の運用環境でコードを実行するために必要な、プログラミング上の拡張やストレス テストなどは、自己の責任において行ってください。 マイクロソフトは、この情報をプログラミング言語の使用方法の一例として提供するだけであり、市場性および特定目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。この資料は、例示されているプログラミング言語やプロシージャの作成およびデバッグに使用するツールについて理解されているユーザーを対象としています。Microsoft Support 担当者は、特定のプロシージャの機能についての問い合わせにはお答えできますが、ユーザー固有の目的に合わせた機能の追加、プロシージャの作成などの内容変更は行っておりません。プログラミングに習熟されていない場合、マイクロソフト認定パートナー、あるいはマイクロソフトの有償サポート窓口までお問い合わせください。マイクロソフト認定パートナー、有償サポート窓口については、次のマイクロソフト Web サイトを参照してください。 https://solutionfinder.microsoft.com/
(https://solutionfinder.microsoft.com/)
http://support.microsoft.com/default.aspx?scid=/isapi/gomscom.asp?target=/japan/support/supportnet/is.asp
(http://support.microsoft.com/default.aspx?scid=/isapi/gomscom.asp?target=/japan/support/supportnet/is.asp)
使用可能なサポート オプションおよびマイクロソフトの問い合わせ先の詳細については、次のマイクロソフト Web サイトを参照してください。
http://support.microsoft.com/contactus/
(http://support.microsoft.com/contactus/)
CDO for Microsoft Windows NT Server (CDONTS) の使用方法CDONTS は、SMTP (Simple Mail Transfer Protocol) に対応した OLE サーバーで、Web ベースのアプリケーションにメッセージング機能を提供することを目的として設計されています。そのため、CDONTS では HTML ベースの電子メールの送信がサポートされています。ただし、SQL Mail などの MAPI ベースのアプリケーションでは HTML ベースの電子メールは送信できません。Microsoft Internet Information Server (IIS) 4.0 以降では、デフォルトで CDONTS がインストールされます。Microsoft Windows 2000 では、デフォルトで Microsoft インターネット インフォメーション サービス (IIS) 5.0 がインストールされます。CDONTS の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックして、文書番号 177850 を参照してください。 177850?
(http://support.microsoft.com/kb/177850/
)
INFO: What is the Difference Between CDO 1.2 and CDONTS?
177850?
(http://support.microsoft.com/kb/177850/JA/
)
[INFO] CDO 1.2 と CDONTS の相違
CDONTS では、SMTP を使用してローカル サーバーに電子メールが送信されます。ローカル サーバー上に SMTP サーバーが存在しない場合、IIS によってインストールされる SMTP 仮想サーバーを使用して、適切な SMTP メール サーバーに SMTP 電子メールをルーティングできます。CDONTS を使用して SQL Server から電子メールを送信するには、以下の手順を実行します。
以下は、Microsoft Windows 2000 用の手順です。IIS 4.0 がコンピュータにインストールされている場合は、同様の方法で Microsoft Windows NT 4.0 を構成できます。ただし、手順は若干異なります。 Microsoft Windows NT 4.0 で "スマート ホスト" を構成する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。 230235?
(http://support.microsoft.com/kb/230235/
)
XCON: How to Configure the IIS SMTP Service to Relay SMTP Mail
230235?
(http://support.microsoft.com/kb/230235/JA/
)
[XCON] SMTP メールを中継するように IIS SMTP サービスを構成する方法
スマート ホストを構成する
ストアド プロシージャを作成して CDONTS 電子メールを送信する注 : この資料に記載されている企業、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人物、場所、およびイベントの例は架空のものです。実在の企業、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人物、場所、またはイベントとの関連を示唆するものではありません。以下のようなコードを使用して、master データベースにストアド プロシージャを作成することにより、SQL Server OLE オートメーション ストアド プロシージャを使用して CDONTS オブジェクト モデルを呼び出して、電子メールを送信できます。 次に、作成したストアド プロシージャを使用して、適切なパラメータを指定します。 CDONTS によって、ローカルの SMTP 仮想サーバーに電子メールが送信されます。その後、仮想サーバーによって、[スマート ホスト] ボックスに指定されている SMTP メール サーバーに電子メールがルーティングされます。SMTP メール サーバーから To: 引数に指定されている電子メール アドレス (この例では、"someone2@example.com") にメールが送信されます。From: 引数に指定されている名前 (この例では、"someone@example.com") が、電子メールの送信者として表示され、"Test of CDONTS" という件名、および "It works" という電子メールの本文も一緒に表示されます。CC フィールドおよび BCC フィールドには引数が指定されていないため、電子メールの CC フィールドおよび BCC フィールドには何もコピーされません。 サンプルを変更して、HTML ベースの電子メールまたは添付ファイルを送信することができます。CDONTS に関するドキュメントについては、次のマイクロソフト Web サイト (英語情報) を参照してください。 http://msdn.microsoft.com/library (http://msdn.microsoft.com/library/) 左側のウィンドウで、[Messaging and Collaboration]、[Collaboration Data Objects]、[CDO 1.2.1] の順に展開します。 SQL Server OLE オートメーション ストアド プロシージャのドキュメントについては、SQL Server 2000 Books Online を参照してください。 CDO for Microsoft Windows 2000 (CDOSYS) の使用方法CDOSYS には、Microsoft Windows 2000 でメッセージング アプリケーションを開発するためのオブジェクト モデルが用意されています。また、既存の CDONTS (CDO for Windows NT Server) ライブラリより強化された機能も備わっています。CDOSYS には、Windows 2000、およびローカルまたはリモートの SMTP サーバーが必要です。プログラムで SMTP サーバーにアクセスできるように CDOSYS を構成することにより、開発者が SMTP サーバーの構成を行う際の柔軟性が高くなります。 CDOSYS の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。 195683?
(http://support.microsoft.com/kb/195683/
)
INFO: Relationship between 1.x CDO Libraries and CDOSYS.DLL
CDOSYS では、リモートの SMTP サーバーに電子メールを送信できるため、SQL Server を実行しているコンピュータに Internet Information Server をインストールし、実行する必要はありません。また、SMTP 仮想サーバーを構成する必要もありません。必要な作業は、電子メールの送信に使用できる SQL Server でストアド プロシージャを作成することだけです。
SQL Mail ではなく CDOSYS を使用する場合は、SQL Server を実行しているコンピュータに Microsoft Outlook などのメール クライアントをインストールする必要はありません。また、Exchange サーバーもインストールしておく必要はありません。SMTP メールをサポートしている任意のメール サーバーを、リモートの SMTP メール サーバーとして使用できます。ただし、CDOSYS を使用する場合、SQL Server に送信された電子メールの読み取りおよび処理を行うことはできません。また、SQL Agent Mail の機能を置き換えることもできません。 SQL Server OLE オートメーション オブジェクトと CDOSYS を併用する場合、CDOSYS オブジェクト モデルの呼び出しには SQL Server OLE オートメーションが使用されます。この動作については、SQL Server 2000 Service Pack 1 (SP1) および SQL Server 2000 Service Pack 2 (SP2) でテストされています。SQL Server 2000 SP1 より前にリリースされたバージョンの SQL Server で、OLE オートメーション ストアド プロシージャから CDOSYS を呼び出すことができるかどうかについては、マイクロソフトでは保証していません。 ストアド プロシージャを作成して CDOSYS メールを送信する以下のようなコードを使用して、master データベースにストアド プロシージャを作成することにより、SQL Server OLE オートメーション ストアド プロシージャを使用して CDOSYS オブジェクト モデルを呼び出して、電子メールを送信できます。CDOSYS によって、cdoSMTPServerName に指定されているリモートの SMTP メール サーバーに電子メールが送信されます。 SMTP メール サーバーによって、To: 引数に指定されている電子メール アドレス (この例では、"someone2@example.com") にメールが送信されます。From: 引数に指定されている名前 (この例では "someone@example.com") が電子メールの送信者として表示され、"Test of CDOSYS" という件名、および @sHTML 変数に含まれている HTML 形式の電子メールも一緒に表示されます。 サンプルを変更して、テキスト ベースの電子メールまたは添付ファイルを送信することができます。CDOSYS に関するドキュメントについては、次のマイクロソフト Web サイト (英語情報) を参照してください。 MSDN Library (http://msdn.microsoft.com/library/) 左側のウィンドウで、[Messaging and Collaboration]、[Collaboration Data Objects]、[CDO for Windows 2000] の順に展開します。 関連情報
SQL Server OLE オートメーション ストアド プロシージャの詳細については、SQL Server 2000 Books Online のトピック「OLE オートメーション ストアド プロシージャを使用したデータ型の変換」を参照してください。
この資料に回答が記載されていない質問については、次の Web サイトで Microsoft SQL Server ニュースグループを参照してください。Microsoft SQL Server ニュースグループ (news://msnews.microsoft.com/microsoft.public.jp.sqlserver.server) この資料や他の Microsoft SQL Server の「サポート技術情報」 (Microsoft Knowledge Base) の資料に関するコメントは、SQLKB@Microsoft.com (mailto:sqlkb@microsoft.com) に寄せてください。 関連情報この資料は以下の製品について記述したものです。
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。" | サポート技術情報の翻訳
|

先頭へ戻る
