无法使用 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 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件

xampp lite ver 1.7.7 无法发送电子邮件

无法通过 gmail 从新创建的电子邮件中使用 phpMailer 发送 SMTP 邮件 [重复]

通过 Microsoft 365 SMTP 发送电子邮件时如何使用自定义显示名称? (以 PHP Swift Mailer 为例)

从PHP页面使用GMail SMTP服务器发送电子邮件