- ベストアンサー
SMTPメール送信で送信者名と送信者アドレスを設定したい
以前質問をさせて頂いたのですが、 自己解決しましたので、その対処方法と それによる新たな疑問を書かせて下さい。 JavaMailを使わずSMTP通信にてメールを送る プログラムを書いているのですが、SMTPコマンドにて MAIL FROM: コマンドのアドレスと DATA From: コマンドの中身が一致しないと、 携帯にメールを送れない事が判明しました。 同じ内容ならば問題なくメールを送る事が出来るのですが、 送信者名を表示したいので、色々と試行錯誤してみましたが、 携帯で受信すると「不正フォーマット」として表示されてしまいます。 MAIL FROM:に送信者アドレスを書き、 DATA From:に送信者名のみを書くと、 不正ヘッダ情報となり携帯が受信をしてくれません。 以前の問題はそこが問題だったようです。 現在、MAIL FROM:はそのままメールアドレスを書き、 DATA From: に、 送信者名 <メールアドレス> "送信者名" <メールアドレス> 送信者名 メールアドレス などとSMTPコマンドを書き換えて送ってみているのですが、 すべて「不正フォーマット」として表示されてしまいます。 お解かりになる方がいらしたらご教授して頂けると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
From:が、 > 送信者名 <メールアドレス> この形式で、送信者名を半角アルファベットだけにした場合はどうなりますか? それで問題なかったとしたら、おそらく漢字コードとかの問題だと思います。 ヘッダがきちんと MIME encoding できているかどうか確認してみてください。
その他の回答 (1)
- tabaxyz
- ベストアンサー率64% (11/17)
DATA コマンドを送ったあとはSMTPから354を待ちます。 354が返ってきたら".\n"を送信し、本文を送信します。 DATA From として送信するのではなく、 DATA\n From: aabbcc@abc.com\n と別けて送りましょう。
補足
ご返答ありがとうございます。 自分の書き方が悪かったですね・・・ SMTPコマンドは、 MAIL FROM: xxxxx@xxxxx RCPT TO: xxxxx@xxxxx DATA ヘッダ設定(Content-Type:.... etc) From:xxxxで送っております。 ここのFromにて、送信者名と送信者アドレスを指定したいのですが、 なかなかうまくいかず、困っております。 送信者名だけで送ると、不正なヘッダとして携帯で受信できないので、 送信者名と送信者アドレス(MAIL FROM:と同じ)両方送らないと いけないようなのですが・・・
お礼
ありがとうございます。 BASE64でエンコーディングしておらず、 きちんとエンコーディングしたら携帯に送れるようになりました。 From: "=?ISO-2022-JP?B?「BASE64でエンコードした文字列」?=" <メールアドレス> 上記のフォーマットで送る事が出来ました。 本当に助かりました。ありがとうございます。