php - 使用 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>");
}
?>
解决方案
错误消息的相关部分是
未知数
这意味着“证书由未知的证书颁发机构签名”。
检查机器上的根 CA 列表是否是最新的。
推荐阅读
- python - 如何使用 tensorflow 读取 .bmp 图像并写入磁盘?
- rebus - Rebus - 从 Handle 方法中退出应用程序
- wpf - 直到我去我的路径对象,触发器才起作用
- iccube - 钻取到 icCube 中的基础文本数据?
- php - PHP 使用 Curl 访问被审查的网站
- r - 如何使用 R 中的稳健种子选择算法计算初始 k 均值中心?
- html - 水平滚动时在屏幕左侧浮动文本
- spring-boot - 配置属性在 Spring Boot2 中不起作用
- javascript - FadeIn 随机 Javascript 游戏
- sharepoint - SPFX 更改命令栏中 ListView 命令集按钮的位置