プロが教える店舗&オフィスのセキュリティ対策術

以前質問をさせて頂いたのですが、
自己解決しましたので、その対処方法と
それによる新たな疑問を書かせて下さい。

JavaMailを使わずSMTP通信にてメールを送る
プログラムを書いているのですが、SMTPコマンドにて 
MAIL FROM: コマンドのアドレスと
DATA From: コマンドの中身が一致しないと、
携帯にメールを送れない事が判明しました。
同じ内容ならば問題なくメールを送る事が出来るのですが、
送信者名を表示したいので、色々と試行錯誤してみましたが、
携帯で受信すると「不正フォーマット」として表示されてしまいます。
MAIL FROM:に送信者アドレスを書き、
DATA From:に送信者名のみを書くと、
不正ヘッダ情報となり携帯が受信をしてくれません。
以前の問題はそこが問題だったようです。

現在、MAIL FROM:はそのままメールアドレスを書き、
DATA From: に、
送信者名 <メールアドレス> 
"送信者名" <メールアドレス>
送信者名 メールアドレス
などとSMTPコマンドを書き換えて送ってみているのですが、
すべて「不正フォーマット」として表示されてしまいます。
お解かりになる方がいらしたらご教授して頂けると幸いです。

A 回答 (2件)

From:が、


> 送信者名 <メールアドレス>
この形式で、送信者名を半角アルファベットだけにした場合はどうなりますか?

それで問題なかったとしたら、おそらく漢字コードとかの問題だと思います。
ヘッダがきちんと MIME encoding できているかどうか確認してみてください。
    • good
    • 1
この回答へのお礼

ありがとうございます。
BASE64でエンコーディングしておらず、
きちんとエンコーディングしたら携帯に送れるようになりました。
From: "=?ISO-2022-JP?B?「BASE64でエンコードした文字列」?="
<メールアドレス>
上記のフォーマットで送る事が出来ました。
本当に助かりました。ありがとうございます。

お礼日時:2009/12/11 17:18

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:と同じ)両方送らないと
いけないようなのですが・・・

補足日時:2009/12/11 13:32
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!