2015-06-02 76 views
1

Modx Revolution中的電子郵件發送有問題。使用FormIt插件,我嘗試在Modx設置列表中啓用Gmail SMTP,但結果相同。現在SMTP被禁用。ModX Revolution通過FormIt發送電子郵件時遇到困難

使用此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上嗎?

回答

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