将 phpmailer 与 plesk smtp 结合使用

using phpmailer with plesk smtp

我正在尝试使用 Plesk SMTP 在我的 VPS 上设置 PHP 邮件程序。

PHP代码

require("path_to_phpmailer");
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
$mail = new PHPMailer(true);                            
try {
    //Server settings
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->SMTPDebug = 2; 
    $mail->CharSet  = 'UTF-8';
    $mail->Host = 'localhost';
    $mail->Port = 25;
    $mail->SMTPSecure = 'tls'; 
    $mail->SMTPOptions = array (
    'ssl' => array(
        'verify_peer'  => true,
        'verify_depth' => 3,
        'allow_self_signed' => true,
        'peer_name' => 'Plesk',
        )
    );
    $mail->SMTPAuth = true;
    $mail->Username = 'support@mywebsite.com';
    $mail->Password = 'somepassword';
    $mail->setFrom('support@mywebsite.com', 'Name Surname');
    $mail->addAddress('someadress@web.de', 'Name Surname');
    $mail->Subject = 'Email subject';
    $mail->msgHTML('Email content with <strong>html</strong>');
    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }

        echo 'Message has been sent';
    } catch (Exception $e) {
        echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
    }

support@mywebsite.com 是我在 ples 仪表板中创建的电子邮件,somepassword 是其密码。但是 运行 脚本给出以下输出:

2018-04-14 09:27:10 SERVER -> CLIENT: 220 myserver.net ESMTP 
Postfix (Ubuntu)
2018-04-14 09:27:10 CLIENT -> SERVER: EHLO mywebsite.com
2018-04-14 09:27:10 SERVER -> CLIENT: 250-myserver.net250- 
PIPELINING250-SIZE 10240000250-ETRN250-STARTTLS250-AUTH DIGEST-MD5 CRAM-MD5 
PLAIN LOGIN250-XFORWARD NAME ADDR PROTO HELO SOURCE PORT IDENT250- 
ENHANCEDSTATUSCODES250-8BITMIME250 DSN
2018-04-14 09:27:10 CLIENT -> SERVER: STARTTLS
2018-04-14 09:27:10 SERVER -> CLIENT: 220 2.0.0 Ready to start TLS
SMTP Error: Could not connect to SMTP host.
2018-04-14 09:27:10 CLIENT -> SERVER: QUIT
2018-04-14 09:27:10 SERVER -> CLIENT: 
2018-04-14 09:27:10 SMTP ERROR: QUIT command failed: 
SMTP connect() failed. 
https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Mailer Error: SMTP connect() failed. 
https://github.com/PHPMailer/PHPMailer/wiki/TroubleshootingMessage has been 
sent

我是不是理解错了什么?

提前致谢!

检查是否是 ssl 问题,然后重试

$mail->SMTPOptions = array(
   'ssl' => array(
   'verify_peer' => false,
   'verify_peer_name' => false,
   'allow_self_signed' => true
  )
);

如果还是有错误

$mail->SMTPDebug = 3;

https://github.com/PHPMailer/PHPMailer/wiki/SMTP-Debugging