PHP Pear :: Mail和SSL身份验证失败SMTP:STARTTLS失败

时间:2018-07-08 15:07:41

标签: php email openssl

我正在尝试使用Pear :: Mail通过smtp发送电子邮件(这样,他们将获得适当的DKIM标头-使用php的邮件无法在plesk上正确初始化DKIM-他们将其保存在修复列表中... )。我确定这在去年某个时候(当我使用较低版本的php版本时)有效,过去9个月中的电子邮件一直使用不同的路由,但现在希望直接从服务器发出。

我在这里看到了许多明显的修复,似乎没有一个对我有用。

邮件测试代码:

function Sendmail($to,$sub,$cont) {
  include_once("Mail.php");

  $username = xxxxx;
  $password = xxxxx;
  $email_from = xxxxx;

  $headers = array ('From' => $email_from, 'To' => $to, 'Subject' => $email_subject);

  $smtp = Mail::factory('smtp',
    array (
           'username' => $username ,
           'password' => $password,
           'auth' => 'PLAIN', // Note 1
           'debug' => true,
           'socket_options' => array('ssl' => array('verify_peer_name' => false, 'verify_peer' => false)) // Note 2
          )
  );
  $mail = $smtp->send($to, $headers, $cont);

  if (PEAR::isError($mail)) {
    echo("<p>" . $mail->getMessage() . "</p>");
  } else {
    echo("<p>Message successfully sent!</p>");
  }
}

我不断收到各种身份验证错误。我在这里寻找修复程序,并尝试了许多。其中大多数涉及更改注释1和注释2的行。全部失败,但错误消息不同。该服务器是最新版本,php 7.2,单个域。

使用auth => PLAIN和verify_Peer错误结果如下:

DEBUG: Recv: 220 xxxxx.co.uk ESMTP Postfix
DEBUG: Send: EHLO localhost

DEBUG: Recv: 250-xxxxx.co.uk
DEBUG: Recv: 250-PIPELINING
DEBUG: Recv: 250-SIZE 10240000
DEBUG: Recv: 250-ETRN
DEBUG: Recv: 250-STARTTLS
DEBUG: Recv: 250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN
DEBUG: Recv: 250-XFORWARD NAME ADDR PROTO HELO SOURCE PORT IDENT
DEBUG: Recv: 250-ENHANCEDSTATUSCODES
DEBUG: Recv: 250-8BITMIME
DEBUG: Recv: 250 DSN
DEBUG: Send: STARTTLS

DEBUG: Recv: 220 2.0.0 Ready to start TLS
DEBUG: Send: EHLO localhost

DEBUG: Recv: 250-xxxxx.co.uk
DEBUG: Recv: 250-PIPELINING
DEBUG: Recv: 250-SIZE 10240000
DEBUG: Recv: 250-ETRN
DEBUG: Recv: 250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN
DEBUG: Recv: 250-XFORWARD NAME ADDR PROTO HELO SOURCE PORT IDENT
DEBUG: Recv: 250-ENHANCEDSTATUSCODES
DEBUG: Recv: 250-8BITMIME
DEBUG: Recv: 250 DSN
DEBUG: Send: AUTH PLAIN

DEBUG: Recv: 334 
DEBUG: Send: AHd3bWZAd2ltYm9ybmVmb2xrLmNvLnVrAFNqMiQzajR0

DEBUG: Recv: 535 5.7.8 Error: authentication failed: authentication failure
DEBUG: Send: RSET

DEBUG: Recv: 250 2.0.0 Ok
DEBUG: Send: QUIT

DEBUG: Recv: 221 2.0.0 Bye

使用auth => PLAIN并没有verify_Peer假,这与auth => true且没有socket_options一样。

DEBUG: Recv: 220 xxxxx.co.uk ESMTP Postfix
DEBUG: Send: EHLO localhost

DEBUG: Recv: 250-xxxxx.co.uk
DEBUG: Recv: 250-PIPELINING
DEBUG: Recv: 250-SIZE 10240000
DEBUG: Recv: 250-ETRN
DEBUG: Recv: 250-STARTTLS
DEBUG: Recv: 250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN
DEBUG: Recv: 250-XFORWARD NAME ADDR PROTO HELO SOURCE PORT IDENT
DEBUG: Recv: 250-ENHANCEDSTATUSCODES
DEBUG: Recv: 250-8BITMIME
DEBUG: Recv: 250 DSN
DEBUG: Send: STARTTLS

DEBUG: Recv: 220 2.0.0 Ready to start TLS
DEBUG: Send: RSET

DEBUG: Recv: MIAɿGCc�.�~q������(�?$f�JՖ���n�:�?�F=�r�$  �k;���Hk����sMj�XEU��O�\+�9���a>����OF~y+����:8k�N�{Nw�0���t�iݸ{���I��v|mY�#�Q������<��)��Hd���zO�_�I�U��msR�� �w����SX/*%?���j��Ğ�Z:�/$[��o�   N���B{R涼��?�s�I���.*&=�L����q�%�>�&�^�S��y��
[�N26#l�s���:��
DEBUG: Send: QUIT

DEBUG: Recv: �f���� =,����8k�Q�.��#�.��3PI��.

不知道最后一个RECV中的象形文字是什么。

好主意想要。

0 个答案:

没有答案