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

时间:2013-04-26 07:18:17

标签: php email ubuntu xampp phpmailer

作为主题,我正在尝试使用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);

以下是我的详细信息:

我的XAMPP Linux看起来有问题,但我无法追踪问题。

任何帮助?

由于

3 个答案:

答案 0 :(得分:0)

我有完全相同的问题。我用肮脏的黑客修复它。 用以下代码替换函数(以public static function ValidateAddress($address) {开头):

public static function ValidateAddress($address) {
    return true;
}

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

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

答案 1 :(得分:0)

修改您的PHP.ini文件。 这应该在您的PHP文件夹中。

在该文件中搜索 maximum_execution_time 。 编辑值 - 它以秒为单位。 - - 默认值应为30。

例如: -

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

编辑注释:这并不总是有效。请参阅上面的正确答案

答案 2 :(得分:0)

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