- ベストアンサー
メール送信処理作成について
下記のページを参考にVCにてメール送信処理を作成しています。 猫でもわかる... http://www.kumei.ne.jp/c_lang/sdk3/sdk_229.htm ただ送信するためには認証が必要なのですね。 OEで受信しないと送信に成功しませんでした。 調べたところ POP before SMTP、SMTP AUTHといった認証方法が あるのはわかったのですが(今回のケースはPOP before SMTP、今後はSMTP AUTHが主流になりそう) メール送信処理を作成するにあたり、認証は どの様に実現すべきなのでしょうか? POP before SMTPに関しては送信前に一回受信すればよいというのはわかります。(それでも処理の関係上、受信メールをサーバーに残す必要があったりと単純に受信するだけではだめなので不明点も多いですが) さらに、今後普及しそうなAUTHに関してはここの過去ログも参考にさせていただきましたが恥ずかしながら???です。 ご存知の方、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
POP before SMTPの場合、認証は「POPサーバーに接続してログインする」のみで充分です。 つまり、POPサーバーにユーザーアカウントとパスワードを送ったら何もせずにPOPサーバーとのコネクトを切断し、続けてSMTPサーバーに接続すれば良いです。 VCではないですが、他のC++コンパイラで作ったメール送受信ソフトは、この手順で動いています。 なお、POPサーバーとのプロトコル仕様を良く読めば判りますが「受信メールをサーバーに残す必要」がある場合は、何もしなければ良いのです。 POPでは「ユーザー名を送る」「パスワードを送る」「リストを取る」「メールヘッダーを読む」「ヘッダーを含め、メールを読む」「メールをサーバーから消す」と言う動作は、すべて別々のコマンドで行います。 ですので、OEなどの「受信メールをサーバーに残す」と言う設定は「メールをサーバーから消すコマンドを送らない」と言う事をしているだけなのです。読んだら勝手に消える訳ではありません。 POPのコマンドの「USER」「PASS」「LIST」「TOP」「RETR」「DELE」「QUIT」辺りを調べてみれば判ります。 なお、SMTP AUTHは、自作ではなかなか大変だと思います。 EHLOを発行してAUTHが有効か、有効なら使えると返されたメカニズムをサポートしているか、サーバーから「チャレンジ」が送られていたなら「レスポンス」も付加する、など、実装しないといけない物が沢山あります。
その他の回答 (2)
- uyama33
- ベストアンサー率30% (137/450)
p165 電子メールプロトコル David Wood著 オライリー・ジャパン に書いてあります。 これを読まれたらいいのでは。 私は、この 教えてgoo で聞いて、 から、この本を買って読んでいます。 メーラーを作るには とっても役に立っています。
お礼
早速見てみようと思います。 ご回答ありがとうございました。
- ceita
- ベストアンサー率24% (304/1218)
試してみていないのでわからないのですが、 POPの認証さえ通れば、 しばらくの間SMTPが許可されるというのが基本動作だと思いますので、 ちゃんとした受信処理までしなくても、 たとえばLISTでタイトルを得るだけでも問題ないのでは ないでしょうか? POP before SMTPに対応したメーラの通信を Etherealかなにかで見てみれば理解が早いと思います。 SMTP AUTHに関してはRFC2554あたりを読んで見るのが 手っ取り早いかと思います。
お礼
ご指摘の様に POP3にログオンするだけでOKでした。 以降は送信することが可能でした。 AUTHはやはり難しいです。 ありがとうございます。
お礼
ご回答ありがとうございます。 おっしゃる様にPOPにログインだけしてすぐ切れば 送信できる様になりました。ログイン時に受信件数が 戻りますが、まったくメールや処理に影響はなかったです。ありがとうございました。 SMTP AUTHはやはり大変ですね。実装は断念してしまいそうです。 ただPOP before SMTPはSMTP AUTHが普及するまでの”つなぎ”とのことでなんとかしたいのですが... また何かあればよろしくお願いいたします。