- 締切済み
メール送信でFROMの表示が・・
メール送信にチャレンジしてますが、 なぜか、 受信メールのFromが メール差出人名@www754.sakura.ne.jpと受信表示さます。 (サーバーはさくらインターネットサーバー) @www754.sakura.ne.jpのサーバー情報がFROM欄に自動的に付加されるのですが、どうしてでしょうか? function sendMails($to,$sub,$msg,$from){ mb_internal_encoding("utf-8"); mb_language("Japanese"); $from = mb_encode_mimeheader($from, 'ISO-2022-JP'); $header = <<<EOM From: {$from} Return-Path: {$from} X-Mailer: mailform1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Mime-Version: 1.0 EOM; if(mb_send_mail ($to,$sub,$msg,$header)){ return true; }else{ return false; } }
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mpx
- ベストアンサー率71% (149/209)
現れる症状は使用しているMTA(SMTPサーバ)に依存しますが 少なくともmime変換に問題があります。 【原因】 >> $from = mb_encode_mimeheader($from, 'ISO-2022-JP'); 上記の様に、全てをmime変換してしまってはメールアドレスまで 変換されてしまいMTAからは読めません。 そのため、MTAによってはメールアドレスが無いと判断してenvelope-from からFrom欄を補うか、サーバーのデフォルトドメインを@マーク以下に 付加するものが多いです。 【対策】 From欄は、日本語部分だけmime変換しましょう 例 $from="ほげほげ<hoge@example.com>"; $frommail = mb_ereg_replace(".*(<.*>)","\\1",$from); $fromj = mb_ereg_replace("(.*)<.*>","\\1",$from); $from = mb_encode_mimeheader($fromj,'ISO-2022-JP').$frommail;
お礼
ビンゴ!!すばらしいです。解決しました。 納得しました。ありがとうございました。感激です!