0

OVH(私のホスティング)から回答が得られなかったので、ここで質問しています。問題は次のとおりです。$mail->MsgHTML($ msg)を$ mail-> MsgHTML($ _ POST ['message'])に置き換えると、ヘッダー、名前、電子メール、件名、およびメッセージを含むメールが即座に受信されます。しかし、代わりに$ msgを置くと、メールが届きません。

$msg='Name:'.$_POST['name'].'<br />
Email:'.$_POST['email'].'<br />
Subject: '.$_POST['subject'].'<br />
IP:'.$_SERVER['REMOTE_ADDR'].'<br /><br />

Message:<br /><br />

'.nl2br($_POST['message']).'

';

PHP全体(FancyAJAXFormから):

<?php
/* config start */

$emailAddress = 'my mail address';

/* config end */

require "class.phpmailer.php";

foreach($_POST as $k=>$v)
{
if(ini_get('magic_quotes_gpc'))
$_POST[$k]=stripslashes($_POST[$k]);

$_POST[$k]=htmlspecialchars(strip_tags($_POST[$k]));
}


$msg='Name:'.$_POST['name'].'<br />
Email:'.$_POST['email'].'<br />
Subject: '.$_POST['subject'].'<br />
IP:'.$_SERVER['REMOTE_ADDR'].'<br /><br />

Message:<br /><br />

'.nl2br($_POST['message']).'

';

$mail = new PHPMailer();
$mail->IsMail();

$mail->AddReplyTo($_POST['email'], $_POST['name']);
$mail->AddAddress($emailAddress);
$mail->SetFrom($_POST['email'], $_POST['name']);
$mail->Subject = "Contact Form: ".mb_strtolower($_POST['subject'])." from    ".$_POST['name']."";

$mail->MsgHTML($msg);

$mail->Send();

?>
4

2 に答える 2

4

問題は解決しました。

$mail->msgHTML($msg) を body 関数に置き換えました:

$mail->IsHTML(true);
$mail->Body='Name:  '.$_POST['name'].'<br />
Email:  '.$_POST['email'].'<br />
Sujet:  '.$_POST['subject'].'
<br /><br />

'.nl2br($_POST['message']).'

<br /><br /> 
Browser:  '.$_SERVER['HTTP_USER_AGENT'].'<br />
IP:  '.$_SERVER['REMOTE_ADDR'].'<br />
';

$mail->Send();

それは完全に機能します!すべての参加者に感謝します!

于 2012-04-30T19:06:28.750 に答える
2

これが正確にタイムリーではないことはわかっていますが、別の解決策を見つけました。

同様の問題がありましたが、機能するページと機能しないページがありました。私はあなたの解決策を試しましたが、同じ結果が得られました。

次に、作業中のページからの電子メールの HTML ソースを調べたところ、開始と終了の html タグと body タグが含まれていて、非作業ページには含まれていないことに気付きました。それだけで、 $mail->msgHTML($msg) がうまくいきました。

お役に立てれば。

于 2013-05-05T07:20:13.517 に答える