- ベストアンサー
Exchangeを使用したメール送信の方法と注意点
- Exchangeを使用したメール送信について、pop before smtpを実現する方法や注意点について解説します。
- CDOを使用したメール送信を行う手順や、pop before smtpが使用できない理由についても説明します。
- 外部DLLを使用せずにpop before smtpに対応する方法や、参考になるURLについても紹介します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>CDOを使用してメール送信を行う手順については調査してみたもののpop before smtpは使用できない旨がネット検索を行った際に記載してあり使用できないことは判明しております。 pop before smtpとは「smtpサーバーに接続する前に、popサーバーに接続してユーザー認証をしなさい」と言う仕掛けです。 pop before smtpでの送信手順は、以下のようになります。 1.POPサーバーに接続する(ポート110でtelnet接続する) 2.POPサーバーにUSERコマンドでログインアカウントを送る 3.POPサーバーにPASSコマンドでログインパスワードを送る 4.ログインメッセージが返って来たらQUITコマンドで接続を切る 5.SMTPサーバーに接続する(ポート25でtelnet接続する) 6.SMTPサーバーにHELOコマンドで、先ほどPOPしたホストと同一である事を明示する 7.SMTPサーバーにMAIL FROM:コマンドで自己アドレスを指示する 8.SMTPサーバーにRCPT TO:コマンドで宛先アドレスを指示する 9.SMTPサーバーにDATAコマンドでメールのヘッダと本文を送る 10.QUITコマンドでSMTPサーバーとの接続を切る このうち、5~10は、CDOなどの既存の送信コンポーネントで実現できます。 また、1~4も、既存の受信コンポーネントで「メールの受信は行わず、サーバ上のリストを取得するだけ」などの処理で代替できます。 つまり「メール受信コンポーネントと、メール送信コンポーネントを用意すれば良いだけ」なのです。そして、受信と送信を連続して行えば良いだけなのです。
その他の回答 (1)
- chie65536
- ベストアンサー率41% (2512/6032)
>CDOを使用して何度か送信を試みたのですが、smtpサーバ名が何を指定したらよいかよく分かりません。 プロバイダと契約した時に、メールアドレスを1つ貰えた筈です。その際に「POPサーバー名」「SMTPサーバー名」「POPユーザーアカウント」「POPパスワード」など、メールに関する「接続情報」の書類を受け取った筈です。 そこに書いてある「SMTPサーバー名」を指定します。 「メルアドはフリーで取得したWEBメールしかない」「メルアドは持ってない」としたら「貴方が自由に利用できるSMTPサーバーは無い」ので、メール送信は諦めて下さい。 >重ね重ね質問をしてしまって申し訳ありませんが、Exchangeサーバへの接続の際は 「Exchangeサーバ」は、マイクロソフト独自のプロトコルとサービスを用いた「Windowsの世界ででしか通じない、popやsmtpとは直接には無関係の、別世界のシロモノ」なので「Exchangeサーバを介してメールを送受信する」には「Exchangeサーバ専用のDLLとコンポーネントが必要」です。 「Exchangeサーバを介してメールを送受信する」と、何が起こるかと言うと「Exchangeサーバ自信が、ユーザーの代わりにpopサーバーとsmtpサーバーに接続してメールを送受信して、受け取ったメールはExchangeサーバに溜まり、ユーザーは独自のプロトコルとサービスを用いて、Exchangeサーバに溜まったメールを受け取る」のです。 「Exchangeサーバはマイクロソフト独自の異世界の物」なので、このサーバーと接続するプログラムを書くには「マイクロソフトが開発者向けに高額で提供しているデベロッパーキットに入っているコンポーネントが必要」です。 メール送受信の世界標準のプロトコルはsmtpとpop3です。なので、今すぐ「Exchangeサーバの事は忘れ去り」ましょう。Exchangeサーバの知識は習得しても何の役にも立ちません。
お礼
回答ありがとうございます。 なるほど。一括した処理というわけではないのですね。 CDOを使用して何度か送信を試みたのですが、smtpサーバ名が何を指定したらよいかよく分かりません。 (簡単なvbsにて送信を行いましたがエラーになってしまって送信できませんでした。smtpサーバ名は Exchangeサーバを入力して実行) 重ね重ね質問をしてしまって申し訳ありませんが、Exchangeサーバへの接続の際はsmtpサーバ名はoutlook等の 設定に表示されている箇所が存在するのでしょうか? Exchangeサーバ名を設定するだけでsmtpサーバ名等を指定することがなかったので。。。 (上記からわかるかと思われますが、Exchangeサーバについても勉強不足のため、 仕組みがどうなっているのかよくわかっていません)