[PHP-users 32443] Re: mail 関数について

KKuji_Y2a kkuji @ mwb.biglobe.ne.jp
2007年 7月 15日 (日) 12:08:45 JST


KK @ IB です

昔、RFCを参照して、送信チェックしながら送信する
プログラムを作ったことがあります。
(川崎 高志さんのフリーソフト、cmailwriterを改変したものです。)
RFC2821(821?)などを見ると参考になるのでは?
私はエラーステータスの返り方などが、よくわかったと思っています。

http://www.puni.net/~mimori/rfc/menu.html

また、下記のようなやり取りになるのですが、
参考になりますか? (送信プログラムのログです。)

09/09/2006-13:52:29 mwb.biglobe.ne.jp (POP3)を検索中...
09/09/2006-13:52:29 mwb.biglobe.ne.jp(202.225.88.139) との接続が確立しました。 

09/09/2006-13:52:29 S: mwb.biglobe.ne.jp POP Gateway starting. 
<17387.4579.1157777549 @ mwb.biglobe.ne.jp>
09/09/2006-13:52:29 C: USER xxxx
09/09/2006-13:52:29 S: Password required for xxxx.
09/09/2006-13:52:29 C: PASS **********
09/09/2006-13:52:29 S: xxxx has 5 message(s) (49845 octets).
09/09/2006-13:52:29 C: STAT
09/09/2006-13:52:29 S: 5 49845
09/09/2006-13:52:29 C: LIST
09/09/2006-13:52:29 S: 5 messages (49845 octets)
09/09/2006-13:52:29 S: 1 20909
09/09/2006-13:52:29 S: 2 21737
09/09/2006-13:52:29 S: 3 3660
09/09/2006-13:52:29 S: 4 1512
09/09/2006-13:52:29 S: 5 2027
09/09/2006-13:52:29 S: .
09/09/2006-13:52:29 C: QUIT
09/09/2006-13:52:29 S: POP Gateway at BIGLOBE signing off.

(ここまでは、認証のためのもので、送信には関係ありません。)

09/09/2006-13:52:30 受信者 0 〜 0 に対する送信を行います。
09/09/2006-13:52:30 mwb.biglobe.ne.jp (SMTP)を検索中...
09/09/2006-13:52:30 mwb.biglobe.ne.jp(202.225.88.139) に接続中...
09/09/2006-13:52:30 mwb.biglobe.ne.jp(202.225.88.139) との接続が確立しました。 

09/09/2006-13:52:30 S: 220 mwb.biglobe.ne.jp SMTP-Gateway Version 2.02 at 
Sat, 09 Sep 2006 13:52:29 +0900 (JST)
09/09/2006-13:52:30 C: HELO 05Y2
09/09/2006-13:52:30 S: 250 mwb.biglobe.ne.jp Hello 05Y2 [219.123.xxx.xxx], 
pleased to meet you
09/09/2006-13:52:30 C: MAIL FROM:??????
09/09/2006-13:52:30 S: 250 2.1.0 ??????... Sender ok
09/09/2006-13:52:30 C: RCPT TO:<(あて先メールアドレス)>
09/09/2006-13:52:30 S: 250 2.1.5 <(あて先メールアドレス)>... Recipient ok

(一応受け付け可能なあて先であることが確認されました。ただし、実際には、
実在するかまではチェックしていません。念のため。
 なお、形式がめちゃくちゃなものでは、
09/10/2006-16:49:29 S: 553 5.1.2 <sxxxxx @ c08...itscom.net>... Invalid host 
name
のようにNGが返ります。)

09/09/2006-13:52:30 C: DATA
09/09/2006-13:52:30 S: 354 Enter mail, end with "." on a line by itself
09/09/2006-13:52:30 C: .
09/09/2006-13:52:30 S: 250 2.0.0 k894qTp12844 Message accepted for delivery
09/09/2006-13:52:30 C: QUIT
09/09/2006-13:52:30 S: 221 2.0.0 mwb.biglobe.ne.jp closing connection



>>> ただし、socketなりを使ってSMTPを喋り、送信先MTAにメール
>>> アドレスが実在するかどうかを問い合わせる事はできます。
>>
>>興味あるのですが、具体的にどのように?
>>SMTPのVRFYとかそういうことでしょうか?
>
> 方法としては、仰るとおりです。
>
>
>>いまどき、VRFYにまともに答えてくれるメールサーバは少ないと思いますが。
>
> まあ、そうですね。



PHP-users メーリングリストの案内