2016-03-25 11 views
1

Ubuntu çalıştıran bir vagrant kutusu var ve postfix yüklü ve komut satırından bir test postası gönderebiliyorum. Ayrıca bir php oturumu başlatabilir ve mail fonksiyonu ile posta gönderebilirim.mail() işlevi Wordpress içinde çalışmıyor, ancak sunucu ve php komut satırından çalışıyor

Ancak, Wordpress'teki bir komut dosyasından, mail() işlevi çalışmaz ve hatayı ayıklarsa, phpmailer sınıfından "Posta işlevi başlatılamadı" hatası geliyor.

Bu yüzden phpmailer sınıfının WordPress'te php mail işlevini geçersiz kıldığı görülüyor. Bu sorunu nasıl çözebileceğime dair herhangi bir fikir. Phpmailer sınıfının beklediği postanın gerekli özniteliklerinin eksik olmasıyla ilgili bir his var.

hata aşağıdaki işlevinden geliyor:

protected function mailSend($header, $body) 
    { 
     $toArr = array(); 
     foreach ($this->to as $toaddr) { 
      $toArr[] = $this->addrFormat($toaddr); 
     } 

     write_log('to arr'); 

     write_log($toArr); 


     $to = implode(', ', $toArr); 

     write_log('to'); 

     write_log($to); 

     write_log('sender'); 

     write_log($this->Sender); 

     if (empty($this->Sender)) { 
      $params = ' '; 
     } else { 
      $params = sprintf('-f%s', $this->Sender); 
     } 
     write_log('params'); 

     write_log($params); 


     if ($this->Sender != '' and !ini_get('safe_mode')) { 
     write_log('old_from'); 

     write_log($old_from); 
      $old_from = ini_get('sendmail_from'); 
      ini_set('sendmail_from', $this->Sender); 
     } 
     $result = false; 


       write_log($this->SingleTo); 


     if ($this->SingleTo && count($toArr) > 1) { 
      foreach ($toArr as $toAddr) { 
       $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params); 
       $this->doCallback($result, array($toAddr), $this->cc, $this->bcc, $this->Subject, $body, $this->From); 
      } 
     } else { 
      $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params); 
      $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From); 
     } 
     if (isset($old_from)) { 
      ini_set('sendmail_from', $old_from); 
     } 
     if (!$result) { 
      throw new phpmailerException($this->lang('instantiate'), self::STOP_CRITICAL); 
     } 
     return true; 
    } 

ve günlükleri gönderici içinde

, params ve posta işlevi wordpress içinde çalışmıyorsa

cevap

0

old_from ayarlanmamış sonra SMTP posta fonksiyonu ve

+0

'un herhangi bir anlam ifade etmediğini ve posta işlevinin çalıştığını söylediğim için üzgünüm. Çalışıyorsa Wordpress – weaveoftheride

+0

'da bir şey eksik, sunucu filtrenizi kontrol edin ...... –

+0

Sunucu filtresi ile ne kastediyorsunuz? – weaveoftheride

İlgili konular