通过 smtp.gmail.com 发送 php 邮件连接

Posted

技术标签:

【中文标题】通过 smtp.gmail.com 发送 php 邮件连接【英文标题】:send php mail connecting through smtp.gmail.com 【发布时间】:2015-05-11 05:08:54 【问题描述】:

我正在尝试运行此脚本来发送电子邮件

require_once('phpMailer/PHPMailerAutoload.php');

$mail             = new PHPMailer();


$mail->IsSMTP();

$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Username = 'myaccount@gmail.com';
$mail->Password = 'mypass';
$mail->Port = '465';
$mail->SMTPDebug  = 1;

$mail->SetFrom('myaccount@gmail.com', 'NAME SURNAME');

$mail->Subject    = 'FeedBack';

$mail->Msghtml('hello');

$address = 'destination@gmail.com';
$mail->AddAddress($address);
$mail->Send();


if(!$mail->Send()) 
  echo 'Mailer Error: ' . $mail->ErrorInfo;
 
else 
  echo 'Message sent!';


?>

但它返回给我这些错误:

2015-03-09 21:29:37 客户端 -> 服务器:EHLO www.mydomain.com

2015-03-09 21:29:37 客户端 -> 服务器:授权登录

2015-03-09 21:29:37 客户端 -> 服务器: Y29pbGx0ZWFuY2FwaXRhbGRldmVsb3BknfBnbWFpbC5jb20=

2015-03-09 21:29:37 客户端 -> 服务器:bmVgr2Vic2l0ZQ==

2015-03-09 21:29:37 SMTP 错误:密码命令失败:534-5.7.14 请通过您的网络浏览器登录,然后重试。 534-5.7.14 在 534 5.7.14 了解更多信息 https://support.google.com/mail/bin/answer.py?answer=78754 n3sm29933619wja.36 - gsmtp

2015-03-09 21:29:37 客户端 -> 服务器:退出

2015-03-09 21:29:37 SMTP 连接()失败。

2015-03-09 21:29:37 客户端 -> 服务器:EHLO www.mydomain.com

2015-03-09 21:29:37 客户端 -> 服务器:授权登录

2015-03-09 21:29:37 客户端 -> 服务器: Y29pbGx0ZWFuY2FwaXRhbvRldcVsb3BlckBnbWFpbC5jb20=

2015-03-09 21:29:37 客户端 -> 服务器:bmV3d2Vic2l0ZQ==

2015-03-09 21:29:37 SMTP 错误:密码命令失败:534-5.7.14 请通过您的网络浏览器和 534-5.7.14 登录,然后重试。 534-5.7.14 在 534 5.7.14 了解更多信息 https://support.google.com/mail/bin/answer.py?answer=78754 y14sm29932162wjr.39 - gsmtp

2015-03-09 21:29:37 客户端 -> 服务器:退出 2015-03-09 21:29:37 SMTP 连接失败。邮件程序错误:SMTP 连接()失败。

我不明白为什么。如果我在 wamp 服务器上本地运行此脚本,它可以工作,但如果将它上传到在线服务器 (linux),它就不起作用。

【问题讨论】:

密码命令失败: 密码正确!如果我在 wamp 服务器上本地运行此脚本,它可以工作,但如果将它上传到在线服务器 (linux),它就不起作用。只需复制和粘贴! in the PHPMailer troubleshooting docs 涵盖了这个确切的问题,并且您使用的是旧版本。 【参考方案1】:

通过删除$mail->IsSMTP();解决了奇怪的问题

【讨论】:

这意味着您只使用 mail() 和本地邮件服务器进行发送,而不是 gmail 出于同样的原因,它可能只是在上游进一步失败。 但是现在通过删除该行,我是否以正确的方式做事?或者可能有一些问题? “对”?您使用 php 邮件功能而不是 smtp 服务器的直接套接字,您还使用完全不同的邮件服务器。这适合你吗?那是你的电话。 我明白,但这会给应用程序带来问题?

以上是关于通过 smtp.gmail.com 发送 php 邮件连接的主要内容,如果未能解决你的问题,请参考以下文章

Django 通过 smtp.gmail.com 发送电子邮件的问题

使用 Gmail 的 PHP 邮件

wamp sendmail 无法通过 smtp.gmail.com:587 发送电子邮件 [重复]

在Php中正确配置SMTP Gmail

通过Python中的smtp.gmail.com在GAE上发送电子邮件

无法与主机 smtp.gmail.com [#0] 建立连接 - LARAVEL / XAMPP / PHP7