
PHPでのメール差出人名について
PHPのmb_send_mailでメール送信プログラムを書いています。
メールは送信されるのですが、メーラーで確認すると
差出人名(送信者)がうまく表示出来ません。
具体的には、
『▲▲サイトより送信』と表示させたいのですが、
『▲▲サイトより送信@レンタルサーバのドメイン名』
と表示されてしまいます。
下記がソースになるのですが、有識者の方いらっしゃいましたら
ご教授よろしくお願いします。
--------------------------------------------
//送信設定
mb_language("japanese");
mb_internal_encoding("euc-jp");
$from = mb_encode_mimeheader(mb_convert_encoding("▲▲サイトより送信","JIS","euc-jp"));
$head = "From: {$from}" . "\r\n" . 'X-Mailer: PHP/' . phpversion();
//送信実行
mb_send_mail($mail_to, $title, $message, $head);
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"))." <メールアドレス>";
とすればいけると思います。
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>";
とすれば大丈夫かと思います。
No.2
- 回答日時:
mb_send_mail()はバグなのか結構文字変換でトラブルが多いようです。
できれば使わない方がいいとおもいますよ。
そもそもご自身でmb_encode_mimeheader()やmb_convert_encoding()を
しているのですからmail()コマンドで十分いけます
またはPEAR::Mailなどでしょうか・・・
http://pear.php.net/manual/ja/package.mail.mail. …
No.1
- 回答日時:
From: ヘッダに記述するのは、基本的に「メールアドレス」です。
ですが、質問者さんのコードでは、From:ヘッダにメールアドレスが入っていません。
そのため、メールサーバが「メールアドレスのドメイン部を省略しちゃったんだろう」と判断してドメイン部を付加しているのです。
From: 名前 <メールアドレス>
という形式にすれば、メールアドレスとは別に名前情報をFrom:ヘッダに埋め込むことができます。
この回答への補足
早速のご回答ありがとうございます。
確かにFromヘッダ指定を
『name<hoge@domein.com>』と指定すると『name』と表示される様になりました!
ですが、
『日本語<hoge@domein.com>』と指定すると『"日本語<hoge@domein.com>"@サーバードメイン』
と表示されてしまいます・・
どうやら日本語が悪さをしているようです。
文字化けも起こしていないことから、文字コードは問題無いと思うのですが。。
サーバー側で何か設定が必要なのか、プログラムで解決する問題なのか検討がつきません。
何かお心あたりはありませんでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- サーバー 接続・ログインはできているのにメールが送信できない 2 2022/06/27 15:03
- Yahoo!メール yahooメールですが、同時発信メールで送信しようとしても、送信できない 2 2022/05/06 17:30
- Outlook(アウトルック) Outlookのメール送信を取り消す方法 1 2022/11/17 13:10
- その他(クラウドサービス・オンラインストレージ) 画像、送信できない。 3 2022/12/07 00:05
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- Android(アンドロイド) Googleフォト 1 2022/03/25 07:38
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
phpの問い合わせフォームを作っ...
-
配列の値の更新方法について
-
PHPの構文で間違えが分からない
-
SFTPなどは使わないホームペー...
-
$_SESSIONに渡した後はそのまま...
-
($_POST['email']??"", ・・・...
-
phpのエラーについて
-
PHP MySql 画像を取得
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
SplFileObject を利用したとき...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpの問い合わせフォームを作っ...
-
composerをインストールしたい...
-
PHP8でWarning:Undefined varia...
-
marginの値でマイナス値を設定...
-
phpでcookieがうまく保存されない
-
SplFileObject を利用したとき...
-
PHPSpreadsheetを使って関数を...
-
PHPSpreadsheetによる書き出し...
-
PHP8を使うと、大量のWarningが...
-
フォームで戻った際に入力済み...
-
PostgreSQLからCSV形式でエクス...
-
PHPを使って、別サイトの一部を...
-
BASIC認証のフォームをデザイン...
-
入力した部分を表示させたまま...
-
【初心者】XAMPPのapacheの(恐...
-
ログイン機の付きの掲示板サイ...
-
ワードプレスサイト PHP8.0.25...
-
Postgresの特定のカラムからス...
-
PHPで画像の渡しが上手く行きま...
-
PHPの勉強してます。 配列のと...
おすすめ情報