为什么PHPMailer或SendMail不能工作?

为什么PHPMailer或SendMail不能工作?,php,smtp,webserver,phpmailer,sendmail,Php,Smtp,Webserver,Phpmailer,Sendmail,我有一个使用phpmailer的php脚本: require("PHPMailer/PHPMailerAutoload.php"); $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPAuth = false; $mail->IsSendmail(); $mail->Host = "localhost"; $mail->Port = 587; $mail->SetFrom($from, 'BuzzZap

我有一个使用phpmailer的php脚本:

require("PHPMailer/PHPMailerAutoload.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = false;
$mail->IsSendmail();
$mail->Host = "localhost";
$mail->Port = 587;

$mail->SetFrom($from, 'BuzzZap');

$mail->Subject = $subject;
$mail->MsgHTML($body);
$mail->AddAddress($to, $to);
if ($mail->Send()) {
    echo "Message sent!";
    return true;
} else {
    echo "Mailer Error: " . $mail->ErrorInfo;
    return false;
}
(某些变量在别处定义,但明确定义) 因此,我在实时服务器上的端口25和587上运行sendmail(当我运行
netstat-tulnp
时)。脚本确实显示“已成功发送”,并且不会产生错误、警告等。Mail.log显示:

 8 17:33:23 casparwylie sendmail[2601]: u18HXNFd002601: Authentication-Warning: casparwylie: www-data set sender to billing@buzzzap.com using -f
Feb  8 17:33:23 casparwylie sendmail[2601]: u18HXNFd002601: from=billing@buzzzap.com, size=2178, class=0, nrcpts=1, msgid=<5e0e6f2a4e12ddb8524541a13b2a76a1@buzzzap.com>, relay=www-data@l$
Feb  8 17:33:23 casparwylie sm-mta[2602]: u18HXNK9002602: from=<billing@buzzzap.com>, size=2393, class=0, nrcpts=1, msgid=<5e0e6f2a4e12ddb8524541a13b2a76a1@buzzzap.com>, proto=ESMTP, dae$
Feb  8 17:33:23 casparwylie sendmail[2601]: u18HXNFd002601: to="casparwylie@googlemail.com" <casparwylie@googlemail.com>, ctladdr=billing@buzzzap.com (33/33), delay=00:00:00, xdelay=00:0$
Feb  8 17:33:23 casparwylie sm-mta[2604]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=ECDHE-RSA-AES128-GCM-SHA256, bits=128/128
Feb  8 17:33:24 casparwylie sm-mta[2604]: u18HXNK9002602: to=<casparwylie@googlemail.com>, delay=00:00:01, xdelay=00:00:01, mailer=esmtp, pri=122393, relay=gmail-smtp-in.l.google.com. [7$
Feb  8 17:33:26 casparwylie sendmail[2606]: u18HXQoo002606: Authentication-Warning: casparwylie: www-data set sender to billing@buzzzap.com using -f
Feb  8 17:33:26 casparwylie sendmail[2606]: u18HXQoo002606: from=billing@buzzzap.com, size=2178, class=0, nrcpts=1, msgid=<2a08b37d9e3ea189c1e61648a3e2e5f8@buzzzap.com>, relay=www-data@l$
Feb  8 17:33:26 casparwylie sm-mta[2607]: u18HXQXe002607: from=<billing@buzzzap.com>, size=2393, class=0, nrcpts=1, msgid=<2a08b37d9e3ea189c1e61648a3e2e5f8@buzzzap.com>, proto=ESMTP, dae$
Feb  8 17:33:26 casparwylie sendmail[2606]: u18HXQoo002606: to="casparwylie@googlemail.com" <casparwylie@googlemail.com>, ctladdr=billing@buzzzap.com (33/33), delay=00:00:00, xdelay=00:0$
Feb  8 17:33:26 casparwylie sm-mta[2609]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=ECDHE-RSA-AES128-GCM-SHA256, bits=128/128
Feb  8 17:33:26 casparwylie sm-mta[2609]: u18HXQXe002607: to=<casparwylie@googlemail.com>, delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=122393, relay=gmail-smtp-in.l.google.com. [7$
8 17:33:23 casparwylie sendmail[2601]:u18HXNFd002601:身份验证警告:casparwylie:www数据集发件人billing@buzzzap.com使用-f
2月8日17:33:23 casparwylie sendmail[2601]:u18HXNFd002601:发件人=billing@buzzzap.com,size=2178,class=0,nrcpts=1,msgid=,relay=www-data@l$
2月8日17:33:23卡斯帕维利sm mta[2602]:u18HXNK9002602:from=,size=2393,class=0,nrcpts=1,msgid=,proto=ESMTP,dae$
2月8日17:33:23卡斯帕维利发送邮件[2601]:u18HXNFd002601:to=”casparwylie@googlemail.com“,ctladdr=billing@buzzzap.com(33/33),延迟=00:00:00,延迟=00:0$
2月8日17:33:23 casparwylie sm mta[2604]:STARTTLS=client,relay=gmail smtp in.l.google.com.,version=TLSv1/SSLv3,verify=FAIL,cipher=ECDHE-RSA-AES128-GCM-SHA256,bits=128/128
2月8日17:33:24 casparwylie sm mta[2604]:u18HXNK9002602:to=,delay=00:00:01,xdelay=00:00:01,mailer=esmtp,pri=122393,relay=gmail-smtp-in.l.google.com。[7$
2月8日17:33:26 casparwylie sendmail[2606]:u18HXQoo002606:身份验证警告:casparwylie:www数据集发件人billing@buzzzap.com使用-f
2月8日17:33:26卡斯帕维利发送邮件[2606]:u18HXQoo002606:发件人=billing@buzzzap.com,size=2178,class=0,nrcpts=1,msgid=,relay=www-data@l$
2月8日17:33:26 casparwylie sm mta[2607]:u18HXQXe002607:from=,size=2393,class=0,nrcpts=1,msgid=,proto=ESMTP,dae$
2月8日17:33:26卡斯帕维利发送邮件[2606]:u18HXQoo002606:to=”casparwylie@googlemail.com“,ctladdr=billing@buzzzap.com(33/33),延迟=00:00:00,延迟=00:0$
2月8日17:33:26 casparwylie sm mta[2609]:STARTTLS=client,relay=gmail smtp in.l.google.com.,version=TLSv1/SSLv3,verify=FAIL,cipher=ECDHE-RSA-AES128-GCM-SHA256,bits=128/128
2月8日17:33:26 casparwylie sm mta[2609]:u18HXQXe002607:to=,delay=00:00:00,xdelay=00:00:00,mailer=esmtp,pri=122393,relay=gmail-smtp-in.l.google.com。[7]$
对于我试图发送的每封电子邮件

然而,我只是在检查时没有收到电子邮件casparwylie@gmail.com.


非常感谢您的帮助-我显然误解了什么!

当您通过位于本地主机的
SMTP
发送电子邮件时,您不必指定
SMTP
相关设置。因此请尝试删除以下行:

$mail->IsSMTP();
$mail->SMTPAuth = false;
$mail->IsSendmail();
$mail->Host = "localhost";
$mail->Port = 587;

注意:别忘了检查你的
垃圾邮件
文件夹

你是否已经尝试放置$mail->Send();在if子句之前?
verify=FAIL
看起来不太好。@Rhopercy现在将尝试。Synchro,同意。但不知道它到底是关于什么的。SMTP到本地主机上的587端口仍然需要TLS加密和身份验证。如果调用
isMail()
而不是
isSMTP()
isSendmail(),则不需要它们
。顺便说一句,罗珀西说的毫无意义。是的,我认为没有。我会试试伊斯梅尔()现在回头报告,谢谢@Synchro。这不是一个真正的答案。使用SMTP到本地主机是一个很好的做法,不仅因为它提供了更好的跟踪性、调试输出和性能。@Synchro,PHPMailer默认情况下在本地主机上使用
SMTP
,因此不需要指定任何其他设置。不;它使用
mail()
默认情况下,它使用您在php.ini中配置的任何sendmail二进制文件,与PHPMailer的SMTP支持无关。@CasparWylie,尝试启用调试:
$mail->SMTPDebug=3;
可以-听起来很有希望!