首页 > 解决方案 > 使用 SSL+AUTH 发送 PHP PEAR 邮件失败

问题描述

使用类似于下面的代码:在我的服务器端,我收到一个错误,似乎暗示它正在尝试使用证书而不是我提供的用户/通行证(也在下面)。其他人看到了,你让它工作了吗?我试过用谷歌搜索错误,但我似乎只是得到了一堆不相关的结果。Linux/PHP7.2.5(在 PHP5.4.20 上也失败)但在 Windows/PHP7 下似乎工作得很好

来自 mail.XXXXXX.com[xxx.xxx.xxx.xxx] 的 SSL_accept 错误:0 警告:TLS 库问题:20353:error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca:s3_pkt.c:1293:SSL alert number 48:

<?php
 require_once "Mail.php";

 $from = "Sandra Sender <sender@example.com>";
 $to = "Ramona Recipient <recipient@example.com>";
 $subject = "Hi!";
 $body = "Hi,\n\nHow are you?";

 $host = "ssl://mail.example.com";
 $username = "smtp_username";
 $password = "smtp_password";
 $port = 465;

 $headers = array ('From' => $from,
   'To' => $to,
   'Subject' => $subject);
 $smtp = Mail::factory('smtp',
   array ('host' => $host,
     'port' => $port,
     'auth' => 'PLAIN',
     'username' => $username,
     'password' => $password));

 $mail = $smtp->send($to, $headers, $body);

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

标签: phpemailsslpear

解决方案


错误消息的相关部分是

未知数

这意味着“证书由未知的证书颁发机构签名”。

检查机器上的根 CA 列表是否是最新的。


推荐阅读