web-dev-qa-db-ja.com

PHPメールの「From」ヘッダーに関する問題

ユーザーが登録したときにユーザーにメールを送信するWebサイトを構築しています。

私のコード(その要点):

<?php
$to = "[email protected]";
$subject = "Test mail";
$message = "Hello! \nThis is a simple email message.";

$headers = "From: [email protected]";
$headers .= "\r\nReply-To: [email protected]";
$headers .= "\r\nX-Mailer: PHP/".phpversion();

mail($to,$subject,$message,$headers);

echo "Mail Sent.";
?> 

問題は、メールが配信されると、fromヘッダーが[email protected]、返信先は指定された値に変更されます。

box123.bluehost.comは、Webサイトがホストされているサーバーのホスト名です。

だから私は間違っているのですか?返信先アドレスと同じ「差出人」アドレスを取得するにはどうすればよいですか?

それは私が間違っているか、ウェブホストがファウルをしているのですか?

29
jrharshath

編集:私はあなたがGmailアドレスをfrom値として使用しようとしていることに注意しました。 これは機能しませんであり、ISPはそれを上書きします。返信を送信メッセージにリダイレクトする場合は、_reply-to_を使用します。

多くのISPで機能する有効なアドレスの回避策:

5番目のパラメーターをmail()コマンドに追加してみてください:

_mail($to,$subject,$message,$headers,"-f [email protected]");
_
56
Pekka 웃

元の投稿者のサーバー(blueHost)には a FAQこの質問に関して があります。

第206条


これは、サーバーがユーザー(またはスクリプト)に、電子メールのヘッダーで適切にフォーマットされた有効なFrom:フィールドを使用するよう要求するためです。 [差出人]フィールドの形式が正しくない場合、空の場合、またはcPanelにメールアドレスが存在しない場合、差出人:アドレスはusername@box###.bluehost.comに変更されます。

有効なFrom: header.を正しく使用するには、使用しているスクリプトを変更する必要があります

動作するはずのヘッダーの例は次のとおりです。

From:[email protected]
From: "user" <[email protected]>

動作しないヘッダーの例:

From: "[email protected]"
差出人:user @ domain.com
From:[email protected] <[email protected]>

私たちのサーバーは、同じメールアドレスの名前とメールアドレスを受け入れません。メールアドレスの二重宣言は受け付けません。

JoomlaやWordpressなどのスクリプトの場合は、fromフィールドを適切にフォーマットするためのドキュメントに従う必要があります。 WordpressはMail Fromプラグインが必要です。

注:使用するメールアドレスは、cPanelで作成された有効なアカウントである必要があります。

20
John Connolly

私は同じ問題を抱えていたので、php.netサイトを確認しました。そして、正しい形式を見つけました。
これは私の更新されたコードです。

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From:  ' . $fromName . ' <' . $fromEmail .'>' . " \r\n" .
            'Reply-To: '.  $fromEmail . "\r\n" .
            'X-Mailer: PHP/' . phpversion();

\ r\ndouble quotes( ")自体、単一引用符( ')は機能しません。

14
Eugine Joseph

フィッシングを防止するために、一部のメールサーバーはFromの書き換えを禁止しています。

4
Luís Guilherme

私はCpanelにメールアカウントを追加し、このようなフィールドからヘッダーに同じメールを追加することでこれを解決しました

$header = 'From: XXXXXXXX <[email protected]>' . "\r\n";
1
Anahit DEV

私はこれが古いスレッドであることを認識していますが、昨日ブルーホストに移動して以来、同じ問題を抱えていました。選択された回答ではなかったかもしれませんが、ブルーホストの記事206の返信をサポートしています。

コントロールパネルで有効なメールを作成し、それを差出人アドレスとして使用し、機能しました。

1
Rvenca

Webホストは実際には不正行為ではありません。厳密にルールに従っているわけではありませんが、スパムを防ぐことを目的としたいくつかの驚くべき発明と比較すると、それほど悪いものではありません。

本当に「@ gmail.com」からメールを送信したい場合は、単にGmail SMTPサービスを使用しないのですか? PHPが実行されているサーバーを再構成できない場合、カスタムのSMTPリレーphpmailerが思い浮かぶように指定できる多くの電子メールラッパーツールがあります。

C.

0
symcbean

共有ホスティングでヘッダーが機能していませんでした。理由は、ヘッダーでhotmailメールアドレスを使用していたからです。 cpanelでメールを作成し、ヘッダーに同じメールを設定しました。

 $header = 'From: ShopFive <[email protected]>' . "\r\n";
0
zeeshan