gpt4 book ai didi

PHPMailer 在发送电子邮件时使用 Gmail SMTP 速度很慢

转载 作者:可可西里 更新时间:2023-11-01 13:15:44 30 4
gpt4 key购买 nike

我发现很少有旧线程有类似的问题,但大多数都没有答案,或者即使有,这些建议也与我的情况无关。

我曾使用 PHP 邮件功能进行过完整的设置,并且效果很好。我不得不一次格式化我的硬盘并从头开始设置服务器。之后,PHP 邮件功能变慢了。在研究解决方案时,我发现大多数人推荐 PHPMailer。我切换到那个,但问题仍然存在。

大多数时候,我每页至少发送两封电子邮件,内容不同但使用相同的对象。大约有 3-4 秒的延迟。请在下面找到相关代码($email1 和 $email2 是包含有效电子邮件地址的数组):

function sendEmail ($email1, $subject1, $message1, $email2, $subject2, $message2) 
{
require_once('../PHPMailer/class.phpmailer.php');

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->IsHTML(true);
$mail->Username = $gmail_username;
$mail->Password = $gmail_password;
$mail->SetFrom($gmail_address,$email_title);

$mail->Subject = $subject1;
$mail->Body = $message1;
foreach($email1 as $k => $v) { $mail->AddAddress($v); }
if(!$mail->Send()) { $emailreturn['cust'] = 0; } else { $emailreturn['cust'] = 1; }
$mail->ClearAddresses();

$mail->Subject = $subject2;
$mail->Body = $message2;
foreach($email2 as $k => $v) { $mail->AddAddress($v); }
if(!$mail->Send()) { $emailreturn['partner'] = 0; } else { $emailreturn['partner'] = 1; }
$mail->ClearAddresses();
}

通过调试和消息我没有看到任何错误,只是发送电子邮件的时间比平时长。

我尝试过的:

  • 我关闭防火墙只是为了测试它,它是一样的。
  • 切换到“tls”,这使它变得更慢
  • 使用对象发送每封电子邮件,每封电子邮件有 3-4 秒的延迟
  • 试过可选配置,注释掉或设置 false,结果都一样

邮件程序设置中是否还缺少其他任何内容,或者是否有一些我应该检查的幕后配置?谢谢

最佳答案

缓慢(或因超时而失败)是因为 Google 支持 IPv6 寻址但您的网络不支持。 (例如,Digital Ocean 尚不支持 IPv6 用于 SMTP 流量)。所以,使用这个:

$mail->Host = gethostbyname("smtp.gmail.com");

gethostbyname()将返回 IPv4 地址。

对我来说,我的 PHPMailer 脚本执行时间从大约 2 分钟缩短到 <4 秒

关于PHPMailer 在发送电子邮件时使用 Gmail SMTP 速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20068484/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com