異邦人になってみた~~上海生活写真ブログ

中国上海市在住です。もう10年を超えました。休日は星空(天の川)撮影やポートレート撮影等、連休時はカメラを持って中国各地を旅行してます。最近は内モンゴル自治区によく行っています。

 このブログについて(about)
  中国旅行/観光/写真記事一覧(省別)

陰気なSMTPサーバーとお話。。。空回りの日々


普段何気なく送信しているメールですが、
ちょっと問題が発生して、
JavaMailでメールが届いているのかよくわからなかったので確認の為、
コマンドブロンプトからメールサーバー(SMTP)と話をしてみました。
サーバーがMicrosoft ESMTP MAIL Serviceでしたが、
SMTPプロトコル自体がそうなのかもしれませんが、なんかとっても陰気な感じです。
と言うのもこっちから文章を送っても返信無かったり、間違ってるとか言われたり。。
何回か入力するとやっと受け付けてくれます。
改行コードの関係なんでしょうかね?
根気よく話してあげる必要があります。

会話

ブロンプトを開いてtelnetでopenコマンドを打ちます。

telnet>open xxx.xxx.xxx.xxx 25

するとSMTPサーバーに接続したようです。
その後の会話は以下。。。

220 mailserver.XX.XX.XX Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at Fri, 10 Oct 2014 13:26:17 +0800
ehlo
500 5.3.3 Unrecognized command
auth login
503 5.5.2 Send hello first.
ehlo
500 5.3.3 Unrecognized command
hello
500 5.3.3 Unrecognized command
ehlo
250-mailserver.XX.XX.XX Hello [192.168.1.1]
250-TURN
250-SIZE
250-ETRN
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-VRFY
250-X-EXPS GSSAPI NTLM LOGIN
250-X-EXPS=LOGIN
250-AUTH GSSAPI NTLM LOGIN
250-AUTH=LOGIN
250-X-LINK2STATE
250-XEXCH50
250 OK
auth login
500 5.3.3 Unrecognized command
auth login
334 AAAAAAAAAAA
XXXXXXX
334 BBBBBBBBBBB
YYYYYYY
235 2.7.0 Authentication successful.
mail from:
250 2.1.0 XXXXX@XXX.XX.jp....Sender OK
rcpt to:
500 5.3.3 Unrecognized command
rcpt to:
500 5.3.3 Unrecognized command
rcpt to: user@XXX.XX.jp
250 2.1.5 user@XXX.XX.jp
data
354 Start mail input; end with .
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
.
250 2.6.0 Queued mail for delivery

説明

SMTPに接続に行くと
最初220 XXXXXXX が帰ってくるので

ehlo

を入れます。
これをなかなか受け付けてくれない。
もしかしてhelloなのか?もしくはいきなりログイン?と思い、「hello」や「auth login」も入れてみましたが、だめです。。

500 5.3.3 Unrecognized command

が出てきて認識されないコマンドだと言われます。。。
やっぱり最初は「ehlo」です。
何回か「ehlo」を入力するとなぜかOKして「Hello」と言って挨拶してくれます
その後、SMTP認証の「auth login」と入力しますが、これもなかなか受け付けてくれませんでしたが、
根気よく「auth login」を入れます。

auth login

「auth login」のコマンド送信が成功すると334を返してきます。

334 AAAAAAAAAAA
XXXXXXXXX→BASE64エンコードしたユーザID

となった後、ユーザーIDを入れます。ただしBASE64エンコードした値を入力します
その後もう一度334と言ってくるので
今度はパスワードを同様にBASE64エンコードした値を入力します。

334 BBBBBBBBBBB
YYYYYYYYY→BASE64エンコードしたパスワード
235 2.7.0 Authentication successful.

が帰ってくると認証成功です。
その後メールアドレスを入力します。

mail from:送信元メールアドレス
rcpt to:送信先メールアドレス

入力しますが、このサーバー。。失敗したときしか返事をしません。
(250 2.1.0 XXXXX@XXX.XX.jp....Sender OKは帰ってきます。)
それ以外は成功だとだんまりのようです。
私が入力すると何回も以下の返信をしてきます(認識されないコマンド)

500 5.3.3 Unrecognized command

何回か入力したところでだんまりしたので、どうやら成功?のようです。
dataと入れると以下のように本文を入れろと言ってくるので

data
354 Start mail input; end with .

データを入れます。
文章の終了は書いてあるように.ピリオドです。
ピリオド入力してリターンで
Queued mail for deliveryと表示され送信成功です。
終了するときはquitを入れます。



それにしても。。。私は
SMTPサーバーに問題があると思っていたのであてが外れました。。
サーバーは問題ないようです。。。何が悪いんでしょう。



結局エクリプスからJavaMailのjarをいったんはずして実行させエラーを発生させてから、
もう一度JavaMail.jarを組み込み実行するとなぜかうまくいきました。。
とんだ空回りです。。。