【问题标题】:Timeout when calling $mail->anyparameter with PHPMailer使用 PHPMailer 调用 $mail->anyparameter 时超时
【发布时间】: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 似乎有问题,但我无法追踪问题。

有什么帮助吗?

谢谢

【问题讨论】:

    标签: php email ubuntu xampp phpmailer


    【解决方案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 很高兴您能够解决您的问题,如果您的问题得到解决,您应该关闭此问题。 :)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-18
        • 1970-01-01
        相关资源
        最近更新 更多