我在这里问,因为我没有从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();
?>发布于 2012-05-01 03:06:29
好了,我把问题解决了。
我已经用主体函数替换了$mail->msgHTML($msg):
$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();它工作得很完美!感谢所有的参与者!
发布于 2013-05-05 15:20:14
我知道这不是很及时,但我找到了另一个解决方案:
我也有类似的问题,但我有一些页面可以工作,一些页面不能工作。我尝试了你的解决方案,但它给了我相同的结果。
然后,我查看了工作页面中电子邮件的html源,注意到我已经包含了开始和结束html和body标签,而没有将它们包含在非工作页面中。这就是所需要的,$mail->msgHTML($msg)为我工作。
希望这能有所帮助。
https://stackoverflow.com/questions/10373603
复制相似问题