相关疑难解决方法(0)

PHPMailer生成PHP警告:stream_socket_enable_crypto():对等证书与预期不匹配

我在PHP 5.6上使用PHPMailer,在PHP 5.6中获得认证的增加的安全性当然很有趣.

我正在尝试向dreamhost上托管的域发送测试消息,PHPMailer返回的错误是:无法连接到SMTP主机.

这个错误不对,我已启用日志记录,这里是实际发生的事情.

连接:打开到mx1.sub4.homie.mail.dreamhost.com:25,timeout = 30,options = array()连接:打开S:220 homiemail-mx32.g.dreamhost.com ESMTP

C:EHLO s81a.ikbb.com

S:250-homiemail-mx32.g.dreamhost.com 250-PIPELINING 250-SIZE 40960000 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250 8BITMIME

C:STARTTLS

S:220 2.0.0准备启动TLS

C:退出

S:SMTP错误:QUIT命令失败:连接:已关闭

我无法理解为什么PHPMailer只是放弃,在应该开始发送消息时发出QUIT命令.我从另一个日志中获得了另一条线索:

PHP警告:stream_socket_enable_crypto():对等证书CN = *.mail.dreamhost.com' did not match expected CN=mx1.sub4.homie.mail.dreamhost.com'在/home/ikbb/domains/dev.ikbb.com/public_html/includes/phpmailer/5.2.10/class.smtp .PHP

如果我使用一些自定义选项来阻止验证他们正在使用的证书,我可以让它继续.这是我有的:

        $mail->SMTPOptions = array (
        'ssl' => array(
            'verify_peer'  => false,
            'verify_peer_name'  => false,
            'allow_self_signed' => true));
Run Code Online (Sandbox Code Playgroud)

如果我将SMTPOptions放在那里并跳过对等验证,则消息正常 - 在PHP中根本没有警告.

我如何捕获该错误,所以我知道存在问题但仍然发送消息?

php ssl openssl phpmailer

40
推荐指数
4
解决办法
8万
查看次数

PhpMailer不发送邮件 - TLS错误?

我在使用phpmailer发送电子邮件时遇到问题.

发送电子邮件的代码是:

$mail_User      = "site@xxxxxxx.com";
$mail_Password  = "My Password";
$mail_address   = "site@xxxxxxx.com";
$mail_Name      = "MyName";
$mail_Server    = "222.222.222.222";
$mail_Port      = 25;

    function SendHTMLMail($to, $cc, $bcc, $subject, $body)
    {
        global $mail_User, $mail_Password, $mail_address, $mail_Name, $mail_Server, $mail_Port;
        $correo = new PHPMailer;
        $correo->SMTPDebug = 3;                               // Enable verbose debug output
        $correo->SetLanguage("es", "/phpmailer/language/");
        $correo->IsSMTP();

        $correo->IsHTML(true);
        $correo->Host = $mail_Server;
        $correo->Port = $mail_Port;
        $correo->SMTPAuth =true;
        //$correo->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
        $correo->Username = $mail_User;
        $correo->Password = $mail_Password;
        $correo->From      = $mail_address;
        $correo->FromName  = …
Run Code Online (Sandbox Code Playgroud)

php email phpmailer

6
推荐指数
1
解决办法
4466
查看次数

标签 统计

php ×2

phpmailer ×2

email ×1

openssl ×1

ssl ×1