无法使用PhpMailer和Codeigniter使用Outlook SMTP发送电子邮件

问题描述 投票:0回答:1

[每当我尝试使用以下方式发送电子邮件(outlook SMTP):Phpmailer时,我都会收到此错误:

2020-06-05 18:45:05 Connection: opening to smtp.office365.com:587, timeout=300, options=array()
2020-06-05 18:45:05 Connection: opened
2020-06-05 18:45:05 SERVER -> CLIENT: 220 AM0PR10CA0059.outlook.office365.com Microsoft ESMTP MAIL Service ready at Fri, 5 Jun 2020 18:45:05 +0000
2020-06-05 18:45:05 SERVER -> CLIENT: 250-AM0PR10CA0059.outlook.office365.com Hello [82.165.86.40]250-SIZE 157286400250-PIPELINING250-DSN250-ENHANCEDSTATUSCODES250-STARTTLS250-8BITMIME250-BINARYMIME250-CHUNKING250 SMTPUTF8
2020-06-05 18:45:05 CLIENT -> SERVER: STARTTLS
2020-06-05 18:45:05 SERVER -> CLIENT: 220 2.0.0 SMTP server ready
2020-06-05 18:45:05 SERVER -> CLIENT: 250-AM0PR10CA0059.outlook.office365.com Hello [82.165.86.40]250-SIZE 157286400250-PIPELINING250-DSN250-ENHANCEDSTATUSCODES250-AUTH LOGIN XOAUTH2250-8BITMIME250-BINARYMIME250-CHUNKING250 SMTPUTF8
2020-06-05 18:45:05 CLIENT -> SERVER: AUTH LOGIN
2020-06-05 18:45:05 SERVER -> CLIENT: 334 VXNlcm5hbWU6
2020-06-05 18:45:05 CLIENT -> SERVER: [credentials hidden]
2020-06-05 18:45:05 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
2020-06-05 18:45:05 CLIENT -> SERVER: [credentials hidden]
2020-06-05 18:45:10 SERVER -> CLIENT: 535 5.7.3 Authentication unsuccessful [AM0PR10CA0059.EURPRD10.PROD.OUTLOOK.COM]
2020-06-05 18:45:10 SMTP ERROR: Password command failed: 535 5.7.3 Authentication unsuccessful [AM0PR10CA0059.EURPRD10.PROD.OUTLOOK.COM]
SMTP Error: Could not authenticate.
2020-06-05 18:45:10 CLIENT -> SERVER: QUIT
2020-06-05 18:45:10 SERVER -> CLIENT: 221 2.0.0 Service closing transmission channel
2020-06-05 18:45:10 Connection: closed
SMTP Error: Could not authenticate.

我也尝试过Codeigniter

Failed to authenticate password. Error:
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.

我尝试了两种方式,但没有用...

我正在使用codeigniter默认邮件类别

这里是配置:

        $config = array(

            'smtp_crypto'  => 'tls', or 'startTls'
            'smtp_auth'  => true,
            'protocol'  => 'smtp',
            'smtp_host' => 'smtp.office365.com',
            'smtp_port' => 587,
            'smtp_timeout' => '7',
            'smtp_user' => '[email protected]',
            'smtp_pass' => 'emailPassword', or 'APPPASSWORD'
            'mailtype'  => 'html',
            'charset'   => 'iso-8859-1',
            'wordwrap'  => TRUE,
            'validation'   => TRUE
        );

这是Phpmailer配置:

$mail->isSMTP();
$mail->Host     = 'smtp.office365.com';
$mail->SMTPAuth = false;
$mail->Username = '[email protected]';
$mail->Password = 'emailPassword'; or 'APPPASSWORD'
$mail->SMTPSecure = 'tls', or 'startTls',
$mail->Port     =  587

有人遇到类型的问题吗?寻求帮助!

php codeigniter email outlook phpmailer
1个回答
1
投票

我遇到了一些证书问题,这就是我最终使用它的方式:

<?php
$mailusername= "******";
$mailpassword= "******";
$mailhost= "smtp.office365.com";
$to="*******";
$subject="test";
$body="abcdef";


require_once('PHPMailer-master/class.phpmailer.php');
require_once('PHPMailer-master/class.smtp.php');


$mail = new PHPMailer();


$mail->IsSMTP();
$mail->IsHTML(true);
$mail->Host       = $mailhost;
$mail->SMTPDebug  = 1;
$mail->SMTPAuth   = true;
$mail->Port       = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);
$mail->Username   = $mailusername;
$mail->Password   = $mailpassword;

$frommail = $mailusername;//$this->from;
$fromname = "Mailbot";
$mail->SetFrom($frommail, $fromname);


$address = $to;
$adrname = "";
$mail->AddAddress($address, $adrname);

$mail->Subject = $subject;
$mail->Body = $body;

if(!$mail->Send()) {
    //echo "Mailer Error: " . $mail->ErrorInfo;
    print( "sendViaSMTP() - failed to send email");
} else {
    print( "sendViaSMTP() - success sending email");
    // all good
}


?>

((1)对我来说,棘手的部分是SMTPOptions()

(2)另一个棘手的部分是使用最新 PHPMailer()库。因为SMTPOptions()仅受较新的PHPMailer()支持>

(3)使用“不验证”选项是不安全的。但是,由于设置/配置问题,在某些服务器上需要。

© www.soinside.com 2019 - 2024. All rights reserved.