1

mail()関数経由でメールを送信したい。

mail($to,$subject,$message)正常に動作します。

しかし、使用mail($to,$subject,$message,$header)してもうまくいきません。ヘッダーは次のとおりです。

Date: Tue, 2 Jul 2013 15:01:49 +0200 +0200
Return-Path: noreply@myhost.com
From: "noreply@myhost.com"
Message-ID:
X-Priority: 3
X-Mailer: PHPMailer 5.2.4 (http://code.google.com/a/apache-extras.org/p/phpmailer/)
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/html; charset=UTF-8

ヘッダーの何が問題になっていますか? 参考までに、ヘッダーは PHPMailer によって生成されます。送信に使用するコードは次のとおりです。

$mail = new PHPMailer();
$mail->IsMail();
$mail->From = $from;
$mail->FromName = $from;
$mail->AddAddress($to);
$mail->IsHTML(true);
$mail->CharSet = 'UTF-8';
$mail->Subject = $subject;
$mail->Body = $message;
$mail->Send();
4

2 に答える 2

0

開発環境にはない可能性があるメールサーバーが必要です。
mail() と PHPMailer は、電子メールをメール サーバーに引き渡すだけで、実際に送信先に送信されます。

利用可能なメール サーバーがなければ、コードがどんなに優れていても、何もできません。見落としている可能性のあるリターン コードや例外がないか確認してください (PHPMailer が何か問題が発生したことをどのように示すかはわかりません。mail() はリターン コードによってそれを行います)。

PHPMailer を実際に使用したことはありませんが、メッセージを中継するために外部サーバーを設定していないように思えます。つまり、PHPMailer はデフォルトでローカル マシンになります。

メール サーバーは、インストールして数分で構成できるものではありません。これは、ローカル マシンにはないと思います。


1) 外部サーバーを設定していないため、PHPMailer はデフォルトでローカル サーバーを使用します。
2) ローカル メール サーバーがないため、PHPMailer が失敗します。
3) $mail->Send() の戻りコードがない/無視している/スローされた例外で、何か問題が発生したことを示しているはずです。

于 2013-07-02T13:44:34.247 に答える