php - 为什么我无法使用 tls 连接到 gmail SMTP 服务器?
问题描述
我的目标是使用 PHPMailer 给自己发送一封电子邮件。我使用 Gmail SMTP 作为开始(我启用了不太安全的应用程序访问并禁用了两因素身份验证),并尝试从本地主机连接(使用 MAMP)。这是我的代码:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer-master/src/Exception.php';
require 'PHPMailer-master/src/PHPMailer.php';
require 'PHPMailer-master/src/SMTP.php';
$mail = new PHPmailer(true);
try {
$mail->SetFrom('myemail','myname');
$mail->AddAddress('myemail','mynickname');
$mail->Body = 'There is a great disturbance in the Force.';
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = TRUE;
$mail->SMTPSecure = 'tls';
$mail->Username = 'myemail@gmail.com';
$mail->Password = 'mypassword';
$mail->Port = 587;
$mail->Send();
}
catch (Exception $e){
echo $e->errorMessage();
}
这给了我一个 SMTP connect() failed 错误。我检查了故障排除页面,发现当防火墙或 DNS 故障时会发生此错误,因此我尝试完全禁用计算机上的防火墙,但无济于事。可能是什么问题呢?
值得注意的是,我曾尝试使用 cmd 连接到 smtp 服务器telnet smtp.gmail.com 587
,但也没有用。这里可能是什么问题?
编辑:我更改$mail->SMTPSecure = 'tls';
为; 并分别有效。为什么 tls 不起作用?$mail->Port = 587;
$mail->SMTPSecure = 'ssl'
$mail->Port = 587;
解决方案
利用
$mail->SMTPDebug = 4;
在try{
帮助缩小错误范围的部分
推荐阅读
- css - 使用 Flexbox/Grid 模糊 CSS 中以容器为中心的图像背景
- hadoop - `hadoop jar` 会在 NameNode 或 DataNode 上执行吗?
- javascript - 为 HTML 表单提交实现每 15 秒自动保存功能
- javascript - 您如何访问文件夹目录中的所有项目?
- python - 如何在 matplotlib 中组合多个密度图?
- vue.js - VueJS 称自己为渐进式框架是什么意思?
- javascript - 如何在伪造查看器上推送文本?
- javascript - 如何将不和谐消息发送到另一个频道?(不和谐 JS)
- python - 如何通过 pandas 库 sqlalchemy 执行 SQL while 循环。不要关闭这个问题,因为我没有找到任何关于这个的答案
- npm - 在 redhat 8 上全局安装 pm2