当前位置: 首页 > 知识库问答 >
问题:

我正在尝试使用PHPmailer发送电子邮件,但我收到了此错误

宰父浩漫
2023-03-14

我得到这个错误

2020-06-03 21:08:07连接:打开到ssl://smtp.gmail.com:25,超时=300,选项=数组()2020-06-03 21:08:07连接失败。

错误#2:stream_socket_client():代码1的SSL操作失败。

OpenSSL错误消息:错误:1408F10B:SSL例程:ssl3\u get\u记录:错误的版本号[C:\xampp\htdocs\Go\vendor\phpmailer\phpmailer\src\SMTP.php第344行]

2020-06-03 21:08:07连接失败。错误#2:stream_socket_client():启用加密失败[C:\xampp\htdocs\Go\供应商\phpmailer\phpmailer\src\SMTP. php line 344]

2020-06-03 21:08:07连接失败。错误#2:流_套接字_客户端():无法连接到ssl://smtp.gmail.com:25 (未知错误)[C:\xampp\htdocs\Go\vendor\phpmailer\phpmailer\src\SMTP.php第344行]

2020-06-03 21:08:07 SMTP错误:无法连接到服务器:(0)SMTP connect()失败。https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

无法发送邮件。邮件程序错误:SMTP connect()失败。https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

<?php
require './vendor/autoload.php';


$send = new PHPMailer\PHPMailer\PHPMailer();

$send->SMTPDebug = 4;// Enable verbose debug output

$send->isSMTP();                                      // Set mailer to use SMTP
$send->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
$send->SMTPAuth = true;                               // Enable SMTP authentication
$send->Username = 'abdelkbirkh2@gmail.com';                 // SMTP username
$send->Password = 'µµµµµµ';                           // SMTP password
$send->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
$send->Port = 25;                                    // TCP port to connect to

$send->setFrom('abdelkbirk@gmail.com', 'Mailer');
$send->addAddress('abdo9@gmail.com', 'Joe User');     // Add a recipient
$send->addAddress('abdok79@gmail.com');               // Name is optional
$send->addReplyTo('abdelk2@gmail.com', 'Information');
$send->addCC('abdelkbir32@gmail.com');
$send->addBCC('abdelkbirk32@gmail.com');

// $send->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
// $send->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$send->isHTML(true);                                  // Set email format to HTML

$send->Subject = 'Here is the subject';
$send->Body    = 'This is the HTML message body <b>in bold!</b>';
$send->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$send->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $send->ErrorInfo;
} else {
    echo 'Message has been sent';
}

共有1个答案

唐兴贤
2023-03-14

发生这种情况是因为您的加密模式和端口号组合不正确。

您已设置:

$send->SMTPSecure = 'ssl';
$send->Port = 25;

SMTPSecure的ssl模式是隐式TLS(也称为SMTPS),其中您连接到的端口将期望您立即谈论TLS-但您连接到的端口没有配置为期望这样做,因此这就是行不通。

ssl模式通常在端口465上使用,但您可以切换到STARTTLS模式(显式TLS),这将在gmail的端口587上工作:

$send->SMTPSecure = 'tls';
$send->Port = 587;

这个确切的问题在链接到您的错误消息的PHPMailer故障排除指南中有详细的描述——当你有这样的问题时,你应该做的第一件事就是阅读错误消息!

 类似资料:
  • 我想通过Gmail或其他电子邮件提供商(如office 365)发送电子邮件,使用NodeEmailer作为我的模块节点。js。 我还想问一下,是否有一个代理或防火墙设置要禁用,以便我可以使用gmail或office 365发送电子邮件。 或者我的代码有问题? const nodemailer=需要("nodemailer"); const smtp传输=需要('nodemailer-smtp-运

  • 错误: 我的代码: 我启用了不太安全的应用程序。我已启用IMAP。两步验证结束。我从GitHub下载了最新版本。电子邮件是我的电子邮件,并确实有效。我该怎么办?我正在XAMPP上的本地主机上尝试这个。我的密码是正确的。为什么会出现这种情况?

  • '535-5.7.8不接受用户名和密码。有关详细信息,请访问535 5.7.8https://support.google.com/mail/?p=BadCredentialsx66sm1596680lff。64-gsmtp“请问我能做什么?”。我正在尝试将电子邮件信息集成到我的应用程序中,即使在通过Gmail API激活并检索到client\u id和client\u secret之后,仍然没有

  • 我正在使用PHPmailer发送电子邮件。到目前为止,我成功地将电子邮件发送到一个地址。现在,我想在一次点击中发送多封电子邮件。 问题:我曾尝试使用下面的一些循环发送多封电子邮件,但我输出错误。是的,它发送电子邮件,但只发送到一个地址,并且该电子邮件地址将获取所有应该发送到其他电子邮件的电子邮件。 例如,当我发送17封电子邮件时,这17封电子邮件只发送到一个地址。电子邮件应根据数据库中的地址发送,

  • 我似乎无法理解为什么我不能使用php中的各种邮件类发送电子邮件。我知道我的密码等是正确的。 有人有什么想法吗? 我得到一个错误: SMTP-

  • 我正在尝试将一些带有硬编码电子邮件数据的测试代码直接插入到我的nodemailer服务器.js文件中,以开始使用基本的工作示例。请参阅以下网址中的“测试代码”部分: http://jsbin.com/sibubi/1/edit?html,js,控制台 在没有测试代码的情况下,Server.js加载没有问题。但是,当包含“测试代码”部分时,会出现错误。它抱怨“不支持的配置”,并建议降级,但我从nod