通过 FormIt 在 ModX Revolution 中发送电子邮件时遇到问题
Trouble with email sending in ModX Revolution via FormIt
在 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的问题吗?
这是一个 PHP 错误,当 运行 将 mod_php 与 apache 一起使用时,它会影响 PHP 5.5.25 和 5.6.9。在 PHP.
中修复之前,有一些解决方法
- 将 PHP 降级到 5.5.24 或 5.6.8
- 切换到 PHP-FPM 而不是 mod_php(无论如何这是个好主意)
- 覆盖 PHPMailer class 并将默认电子邮件验证方法更改为 'php'。
最后一个方法将像这样完成:
class myMailer extends PHPMailer
{
public static function validateAddress($address, $patternselect = 'php')
{
return parent::validateAddress($address, $patternselect);
}
}
然后使用那个 subclass 而不是普通的 PHPMailer class。
同样的错误已经影响了其他各种 PHP 项目,例如 Typo3 和 SwiftMailer。在 PHPMailer 中跟踪它的错误是 here.
在 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的问题吗?
这是一个 PHP 错误,当 运行 将 mod_php 与 apache 一起使用时,它会影响 PHP 5.5.25 和 5.6.9。在 PHP.
中修复之前,有一些解决方法- 将 PHP 降级到 5.5.24 或 5.6.8
- 切换到 PHP-FPM 而不是 mod_php(无论如何这是个好主意)
- 覆盖 PHPMailer class 并将默认电子邮件验证方法更改为 'php'。
最后一个方法将像这样完成:
class myMailer extends PHPMailer
{
public static function validateAddress($address, $patternselect = 'php')
{
return parent::validateAddress($address, $patternselect);
}
}
然后使用那个 subclass 而不是普通的 PHPMailer class。 同样的错误已经影响了其他各种 PHP 项目,例如 Typo3 和 SwiftMailer。在 PHPMailer 中跟踪它的错误是 here.