发送 AUTH LOGIN 命令失败。错误:无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件

Posted

技术标签:

【中文标题】发送 AUTH LOGIN 命令失败。错误:无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件【英文标题】:Failed to send AUTH LOGIN command. Error: Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method 【发布时间】:2018-06-07 06:24:22 【问题描述】:

我正在尝试使用 php Code-Igniter 从 Office 365 发送电子邮件。 但我遇到了一个错误:

220 MAXPR0101CA0041.outlook.office365.com Microsoft ESMTP 邮件服务 准备在 2017 年 12 月 26 日星期二 11:17:56 +0000

你好:250-MAXPR0101CA0041.outlook.office365.com 你好 [115.96.169.89]

250 尺寸 157286400

250-流水线

250-DSN

250-增强状态代码

250-STARTTLS

250-8BITMIME

250-BINARYMIME

250 分块

250 SMTPUTF8

发送 AUTH LOGIN 命令失败。错误:504 5.7.4 无法识别 认证类型 [MAXPR0101CA0041.INDPRD01.PROD.OUTLOOK.COM]

无法使用 PHP SMTP 发送电子邮件。您的服务器可能不是 配置为使用此方法发送邮件。

日期:2017 年 12 月 26 日星期二 12:17:56 +0100

发件人:

返回路径:

收件人:myemail@mydomain.com

主题:=?UTF-8?Q?Test=20Email?=

回复:

用户代理:CodeIgniter

X 发件人:myemail@mydomain.com

X-Mailer: CodeIgniter

X 优先级:3(正常)

消息 ID:

Mime 版本:1.0

内容类型:多部分/替代;边界="B_ALT_5a422fe4307e9"

这是一个 MIME 格式的多部分消息。您的电子邮件应用程序 可能不支持这种格式。

--B_ALT_5a422fe4307e9 内容类型:文本/纯文本; charset=UTF-8 内容传输编码:8bit

SMTP 发送测试邮件,完成...

--B_ALT_5a422fe4307e9 内容类型:text/html; charset=UTF-8 Content-Transfer-Encoding:quoted-printable

SMTP 发送测试邮件,完成...

--B_ALT_5a422fe4307e9--

这是我的控制器代码:

public function emailSend()
    
        # code...
        /*
        Minimun test code for successful email sending over SMTP with Office 365
        Things to double-check: 
        - openssl php extension must be enabled in the server
        - host set to smtp.office365.com, not the old aliases
        - Port 587
        - newline configuration: explicit to "\r\n"
        */

        //In your Controller code:

        $this->load->library('email');        

        //$config = [
            $config['protocol']= 'smtp';
            $config['mailpath']= "/usr/lib/sendmail";
            $config['smtp_port']= 587;
            $config['smtp_timeout'] = '7';
            $config['smtp_host']= 'smtp-mail.outlook.com';
            $config['smtp_user']= 'myemail@mydomain.com';
            $config['smtp_pass']= '*********';
            $config['smtp_crypto']= 'STARTTLS';   
            $config['newline']= "\r\n"; //REQUIRED! Notice the double quotes!
            $config['crlf']= "\r\n";
            $config['mailtype'] = 'html';
        //];

        $this->email->initialize($config);

        $this->email->from('myemail@mydomain.com');        
        $this->email->to('myemail@mydomain.com');
        $this->email->subject('Test Email');
        $this->email->message('SMTP sending test email, Done...');

        $sent = $this->email->send();


        if ($sent) 
        
            echo 'OK';

         else 
            echo $this->email->print_debugger();
        

    

我检查了很多链接和问题,但没有成功。我没有得到代码中的确切错误。

注意: 我试过了

$config['smtp_port']= 465; 
$config['smtp_crypto']= 'TLS';
$config['smtp_crypto']= 'SSL';

欢迎任何形式的帮助,在此先感谢。

【问题讨论】:

你找到解决办法了吗??我有同样的问题 @Sana Riaz:我已经在实时服务器上上传了脚本,它正在服务器上运行。 好的,你知道如何在 wamp localhost 上解决这个问题吗?? @SanaRiaz 参考此链接:***.com/questions/22396721/… 你也可以尝试增加 smtp timeout $config['smtp_timeout'] = '30' 【参考方案1】:

有类似的问题,我的解决方案正在改变,

$config['protocol'] = "smtp";

到:

$config['protocol'] = "sendmail";

【讨论】:

以上是关于发送 AUTH LOGIN 命令失败。错误:无法使用 PHP SMTP 发送电子邮件。您的服务器可能未配置为使用此方法发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

login auth failed errormsg :http request params error啥意思

Gmail SMTP,客户端-> 服务器:AUTH XOAUTH2,SMTP 错误:AUTH 命令失败:334

关于阿里云Centos7 Mailx发送邮件失败的处理

当我尝试登录时 Auth0 返回错误

Cakephp 2.0 $this->Auth->login() 不工作

C#yandex邮件发送错误5.5.4错误:首先发送AUTH命令