使用 PHPMailer 调用 $mail->anyparameter 时超时

Posted

技术标签:

【中文标题】使用 PHPMailer 调用 $mail->anyparameter 时超时【英文标题】:Timeout when calling $mail->anyparameter with PHPMailer 【发布时间】:2013-04-20 07:04:33 【问题描述】:

作为主题,我正在尝试使用 phpMailer 发送电子邮件。但奇怪的是,来自 PHPMailer 的示例仅适用于 XAMPP Windows,而不适用于 XAMPP Linux。我没有修改复杂的设置,我从 XAMPP Linux 更改的设置只是启用了 openssl。

我正在尝试执行下面的基本代码,它仅适用于 XAMPP Windows,但不适用于 XAMPP Linux。每次php进程该行包含$mail->时,脚本都会超时。

 <?php
 require_once "phpmailer/class.phpmailer.php";
 $mail = new PHPMailer;

 //die("ok");
 $mail->AddAddress("email address", "name");
 $mail->SetFrom("email address", "name");
 $mail->WordWrap = 50;
 $mail->Ishtml(true);
 $mail->Subject = "Subject";
 $mail->Body    = "<p>HTML Test</p>";
 $mail->Send()
 ?>

超时消息:

Fatal error: Maximum execution time of 30 seconds exceeded in /opt/lampp/htdocs/phpmailertest/phpmailer/class.phpmailer.php on line 767

class.phpmailer.php 的第 767 行:

return (boolean)preg_match('/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1))255,)(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1))65,@)((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]64,)(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>(?1)\.(?!(?1)[a-z0-9-]64,)(?1)(?5))0,126|\[(?:(?>IPv6:(?>([a-f0-9]1,4)(?>:(?6))7|(?!(?:.*[a-f0-9][:\]])8,)((?6)(?>:(?6))0,6)?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6))5:|(?!(?:.*[a-f0-9]:)6,)(?8)?::(?>((?6)(?>:(?6))0,4):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]2|[1-9]?[0-9])(?>\.(?9))3))\])(?1)$/isD', $address);

这是我的详细信息:

Ubuntu 12.10 桌面没有 LAMP 组件,只有 XAMPP for Linux XAMPP 版本 1.8.1(绝对是最新版本) 来自https://github.com/Synchro/PHPMailer 版本主控的PHPMailer。

我的 XAMPP Linux 似乎有问题,但我无法追踪问题。

有什么帮助吗?

谢谢

【问题讨论】:

【参考方案1】:

编辑您的PHP.ini 文件。 这应该在您的PHP 文件夹中。

在该文件中搜索 ma​​ximum_execution_time。 编辑值 - 以秒为单位。 - - 默认应该是 30。

例如:-

replace maximum_execution_time  30
      with   maximum_execution_time 3000(for 5 minutes if that helps)

编辑提示:这并不总是有效。正确答案见上图

【讨论】:

【参考方案2】:

我有同样的问题,只是发现这与 PHPMailer 本身无关。它与您的 SMTP 服务器有关。我的提供者刚刚告诉我有问题。当您遇到此问题时,我建议您先联系您的管理员。

【讨论】:

【参考方案3】:

我遇到了完全相同同样的问题。我用肮脏的黑客修复了它。 将函数(以public static function ValidateAddress($address) 开头)替换为:

public static function ValidateAddress($address) 
    return true;

这将验证您提供的任何地址,任何

在将地址与 PHPMailer 一起使用之前,您应该自己检查地址。我不知道如果你不这样做会发生什么,请检查地址。

【讨论】:

谢谢!无论如何,当我在尝试执行您的代码之前,PHPMailer 恢复正常,并且我没有修改任何内容:|真的很奇怪! @mokalovesoulmate 很高兴您能够解决您的问题,如果您的问题得到解决,您应该关闭此问题。 :)

以上是关于使用 PHPMailer 调用 $mail->anyparameter 时超时的主要内容,如果未能解决你的问题,请参考以下文章

php使用PHPMailer发送邮件示例

从phpmailer发送邮件正在工作,但cakephp邮件不能与saim cradienial一起使用

phpMailer垃圾邮件

phpmailer笔记

PHPmailer 日文字符

2019 无法调用未创建 PHPMailer 版本 6.0.7 实例的新 PHPMailer