无法使用 SMTP 通过 PHP 发送电子邮件
Posted
技术标签:
【中文标题】无法使用 SMTP 通过 PHP 发送电子邮件【英文标题】:Unable to Send Email Via PHP using SMTP 【发布时间】:2017-12-14 04:10:08 【问题描述】:这是我的 email.php 文件:
<?php
$to = "someemail@gmail.com";
$from = "myemail@gmail.com";
$subject="Email";
$body="hi";
$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $subject
);
$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => 'myemail@gmail.com',
'password' => 'password'
));
$mail = $smtp->send( $to, $headers, $body);
if (PEAR::isError($mail))
echo('<p>' . $mail->getMessage() . '</p>');
else
echo('<p>Message successfully sent!</p>');
?>
我已启用对安全性较低的应用程序、DisplayUnlockCaptcha 以及 IMAP 的访问。我没有在帐户中启用两步验证。但是,我仍然收到以下错误。
authentication failure [SMTP: Invalid response code received from server (code: 534, response: 5.7.14 Please log in via your web browser and 5.7.14 then try again. 5.7.14 Learn more at 5.7.14 https://support.google.com/mail/answer/78754 i28sm32905934pfk.17 - gsmtp)]
我在 Windows 中使用 XAMPP,这是我在 php.ini 文件中放入的内容:
[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
SMTP = localhost
smtp_port = 465
; For Win32 only.
sendmail_from = myemail@gmail.com
如果有人能帮我解决这个问题,我将不胜感激!
【问题讨论】:
您在输入验证码后的 10 分钟内登录,对吗? 我对xampp不熟悉。但我希望你已经安装了 php-pear 并且 mail.php 在你的require
声明中
【参考方案1】:
我建议使用 SwiftMailer 的不同方法。
您可以使用 json 文件轻松获取组件并查看其运行情况。 http://swiftmailer.org/docs/introduction.html#basic-usage
【讨论】:
以上是关于无法使用 SMTP 通过 PHP 发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
配置 php.ini 后无法通过 localhost 发送电子邮件
发送 AUTH LOGIN 命令失败。错误:无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件
无法通过 gmail 从新创建的电子邮件中使用 phpMailer 发送 SMTP 邮件 [重复]
通过 Microsoft 365 SMTP 发送电子邮件时如何使用自定义显示名称? (以 PHP Swift Mailer 为例)