• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでのメール差出人名について)

PHPでのメール差出人名について

このQ&Aのポイント
  • PHPのmb_send_mailでメール送信プログラムを書いています。メールは送信されるのですが、メーラーで確認すると差出人名(送信者)がうまく表示出来ません。
  • 具体的には、『▲▲サイトより送信』と表示させたいのですが、『▲▲サイトより送信@レンタルサーバのドメイン名』と表示されてしまいます。
  • 下記がソースになるのですが、有識者の方いらっしゃいましたらご教授よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.4

メールアドレス風の文字列が入っているせいか、「現在、この回答はサポートで内容を確認中です」になってしまったので、再書き込みします。 ちょっと試してみましたが、mb_encode_mimeheader がメールアドレスの部分までMIMEエンコーディングしてしまいうようです。 (そのため、受信した側でMIMEデコードした結果を見ると、正しいヘッダのはずなのに変な処理をされているように見えますが、メールサーバ側で受け取った段階(MIMEエンコードされたヘッダ)では、From:ヘッダとして正しくメールアドレスが記述された状態ではなくなってしまってます) これはmb_encode_mimeheader のバグ(というか仕様が腐ってる)んだと思います。 メールアドレスの記述はmb_encode_mimeheader を通さないように $from = mb_encode_mimeheader(mb_convert_encoding("○○","JIS","euc-jp"))." <メールアドレス>"; とすればいけると思います。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.3

> 『日本語<hoge@domein.com>』と指定すると『"日本語<hoge@domein.com>"@サーバードメイン』 ちょっと試してみましたが、mb_encode_mimeheaderが「<hoge@domein.com>」の部分までMIMEエンコーディングしてしまうため、正しい From: ヘッダ形式にならないようです。 mb_encode_mimeheader のバグ(仕様が腐ってる)って感じでしょうか。 メールアドレス部を mb_encode_mimeheader 処理の外に出して、 $from = mb_encode_mimeheader(mb_convert_encoding("日本語","JIS","euc-jp"))." <hoge@domain.com>"; とすれば大丈夫かと思います。

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

mb_send_mail()はバグなのか結構文字変換でトラブルが多いようです。 できれば使わない方がいいとおもいますよ。 そもそもご自身でmb_encode_mimeheader()やmb_convert_encoding()を しているのですからmail()コマンドで十分いけます またはPEAR::Mailなどでしょうか・・・ http://pear.php.net/manual/ja/package.mail.mail.php

すると、全ての回答が全文表示されます。
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.1

From: ヘッダに記述するのは、基本的に「メールアドレス」です。 ですが、質問者さんのコードでは、From:ヘッダにメールアドレスが入っていません。 そのため、メールサーバが「メールアドレスのドメイン部を省略しちゃったんだろう」と判断してドメイン部を付加しているのです。 From: 名前 <メールアドレス> という形式にすれば、メールアドレスとは別に名前情報をFrom:ヘッダに埋め込むことができます。

urahyster
質問者

補足

早速のご回答ありがとうございます。 確かにFromヘッダ指定を 『name<hoge@domein.com>』と指定すると『name』と表示される様になりました! ですが、 『日本語<hoge@domein.com>』と指定すると『"日本語<hoge@domein.com>"@サーバードメイン』 と表示されてしまいます・・ どうやら日本語が悪さをしているようです。 文字化けも起こしていないことから、文字コードは問題無いと思うのですが。。 サーバー側で何か設定が必要なのか、プログラムで解決する問題なのか検討がつきません。 何かお心あたりはありませんでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A