繁体   English   中英

phpmailer截至美国东部标准时间下午2点之前的12/4

[英]phpmailer was working as of 12/4 prior to 2pm est

好的,即时消息在30小时后不间断地尝试找出此代码,以了解为什么它突然冒出来停止工作,并且现在真的让我生气。

它是生产服务器,直到标题时间都可以正常工作。

这是我的testemail.php,它在此日期时间之前有效。

<?php
require 'include\smtp\class.phpmailer.php';
require 'include\smtp\class.smtp.php';
set_time_limit(3600);
date_default_timezone_set('Etc/UTC');
$mail = new PHPMailer();  // create a new object

$mail->Timeout = 3600;
$mail->IsHTML();
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 4;  // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true;  // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465; 
$mail->Username = "email";
$mail->Password = "pass";        
$mail->SetFrom( "email",  "Do Not Reply");
$mail->Subject = "test";
//$mail->AddAttachment($dir.str_replace("/", "\\", $row2["eventpdf"]));
$mail->Body = "testing";
$mail->AddAddress("email");

if(!$mail->Send()) {
    $error = 'Mail error: '.$mail->ErrorInfo; 
    } else {
    $error = 'Message sent!';

    }
    ?>

更新:

我从github将我的class.phpmailer.php和class.smtp.php更新为vs 5.2.26,并应用了

$mail->SMTPOptions = array(
'ssl' => array(
    'verify_peer' => true,
    'verify_peer_name' => false,
    'allow_self_signed' => true
)
);

就在if(!$ mail行之前。这是一个临时解决方案,而我想知道为什么ssl证书会从错误的位置拉出它,以及在哪里设置正确的位置。它从/ usr / local / ssl那里拉出东西是Windows机器,认为它是Linux机器,也没有使用任何预包装的amp系统,im仅使用所有单独的安装,apache / php / mysql都单独使用。

费:

设置为true的verify_peer是导致问题的原因。 您可以将其他任何内容更改为true / false,然后它将发送。 一旦将verify_peer更改为true,它就会停止。

正确修复。 在“ PHPMailer故障排除”下,下载一个新的cacert.pem,并在php.ini内滚动至底部(至少我的底部),或搜索cafile或capath并添加路径和文件。 文件必须是它的完整路径,因为它给了我一个错误,不是。 像c:\\ certs \\ cacert.pem一样,然后重新启动Apache服务器,然后将verify_peer更改为true或删除所有smtpoptions并再次发送带有证书的电子邮件。 不确定它是否可以与任何其他证书一起使用,但不能与我从GitHub上的PHPMailer页面进行故障排除时列出的站点下载的证书一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM