4

PHP を使用してメールを送信する際に問題があります。メールは Outlook で正しく受信されますが、電子メールに「差出人」アドレスが表示されません。

$subject = $_POST['message_subject'];
$message = $_POST['speaker_description'];
$email   = $_POST['email'];
$option  = $_POST['sel_reg_options'];
$email   = substr_replace($email ,"",-1);

$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From:My Name<myifno@mysite.com>\r\n";
$headers .= "Reply-To: Registration of Interest<info@mysite.com>\r\n";          
$headers .= "MIME-Version: 1.0"."\r\n";
$mail_sent = @mail($email,$subject,$message,$headers);
4

2 に答える 2

2

名前は二重引用符で囲む必要があります(これは返信先アドレス名にも適用されます)。

$headers .= "From: \"My Name\" <myifno@mysite.com>\r\n";


また、UnixでPHPを実行している場合は、FROMエンベロープを$additional_parametersパラメーターに追加します。

$mail_sent = @mail($email,$subject,$message,$headers,'-f myifno@mysite.com');


逆に、Windowsで実行している場合は、次の方法で、または次を使用してsendmail_fromINIディレクティブを設定します。php.ini

ini_set('sendmail_from', 'myifno@mysite.com');


出典: RFC2822php.netユーザーコメント、 IBMsendmailコマンドリファレンス

于 2012-04-11T05:34:41.030 に答える
0

最近、メールスクリプトをPHPMailerに切り替えました。メールの作成と送信がはるかに簡単になりました。間違ったヘッダーや、PHP と電子メールに関する複雑さについて心配する必要はもうありません。メールのフォーマットに問題がなく、いくつかのメール クライアントでも正しく受信されました。

于 2014-08-14T20:13:26.620 に答える