【问题标题】:Trouble with email sending in ModX Revolution via FormIt通过 FormIt 在 ModX Revolution 中发送电子邮件的问题
【发布时间】:2015-06-02 08:01:46
【问题描述】:

在 Modx Revolution 中发送电子邮件存在问题。使用 FormIt 插件,我尝试在 Modx 设置列表中启用 Gmail SMTP,但结果相同。现在 SMTP 已禁用。

使用这个 FormIt 调用:

[[!FormIt? 
     &hooks=`email,redirect`
     &redirectTo=`19`
     &redirectParams=`{"success":"1"}`
     &emailTpl=`feedbackEmailTpl`
     &emailSubject=`New request from [[++site_name]]`
     &emailTo=`***@gmail.com`
     &emailToName=`Support`
     &emailReplyTo=`***@gmail.com`
     &emailFrom=`***@gmail.com`
     &emailFromName=`***@gmail.com`
     &errTpl=`<span class="label label-warning">[[+error]]</span>`
     &validate=`
         name:required:stripTags,
         clientemail:email:required,
         message:required:stripTags
     `
     &clearFieldsOnSuccess=`1`
     &validationErrorMessage=`Error.`
]]

在error.log文件中:

[2015-06-02 10:33:37] (ERROR @ /var/www/site/core/model/modx/mail/phpmailer/class.phpmailer.php : 893) PHP warning: preg_match(): Compilation failed: internal error: previously-checked referenced subpattern not found at offset 728
[2015-06-02 10:33:37] (ERROR @ /var/www/site/core/model/modx/mail/phpmailer/class.phpmailer.php : 893) PHP warning: preg_match(): Compilation failed: internal error: previously-checked referenced subpattern not found at offset 728
[2015-06-02 10:33:37] (ERROR @ /index.php) [FormIt] Произошла ошибка при попытке отправить почту. Пожалуйста, введите хотя бы один адрес e-mail получателя.

有什么问题吗?这个问题是否与 PHPMailer 相关?

【问题讨论】:

    标签: email phpmailer modx modx-revolution formit


    【解决方案1】:

    这是一个 PHP 错误,当使用带有 apache 的 mod_php 运行时会影响 PHP 5.5.25 和 5.6.9。在 PHP 中修复之前,有一些解决方法。

    1. 将 PHP 降级到 5.5.24 或 5.6.8
    2. 切换到 PHP-FPM 而不是 mod_php(无论如何这是个好主意)
    3. 覆盖 PHPMailer 类并将默认电子邮件验证方法更改为“php”。

    最后一个方法是这样完成的:

    class myMailer extends PHPMailer
    {
        public static function validateAddress($address, $patternselect = 'php')
        {
            return parent::validateAddress($address, $patternselect);
        }
    }
    

    然后使用该子类而不是普通的 PHPMailer 类。 同样的错误已经影响了其他各种 PHP 项目,例如 Typo3 和 SwiftMailer。在 PHPMailer 中跟踪它的错误是 here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 2014-04-25
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      相关资源
      最近更新 更多