使用 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
文件夹中。
在该文件中搜索 maximum_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 时超时的主要内容,如果未能解决你的问题,请参考以下文章