2014-11-08 146 views
0

我正在使用codeigniter框架。在使用笨郵件功能發送郵件,郵件將被傳遞爲垃圾郵件,我不知道爲什麼發生這種情況,我使用代碼:使用codignator自由功能發送郵件作爲垃圾郵件發送

$this->load->library('email'); 
    if($fromname==''){$fromname='MySystem';} 
    if($from==''){$from='[email protected]';} 
    if($reply==''){$reply=$from;} 
    $config = array(
    'protocol' => 'smtp', 
    'smtp_host' => host, 
    'smtp_port' => port, 
    'smtp_crypto' => 'ssl', 
    'smtp_user' => user_nam, 
    'smtp_pass' => pwd, 
    'mailtype' => 'html', 
    'charset' => 'utf-8', 
    'wordwrap' => TRUE 
    ); 
    $this->email->initialize($config); 
    $this->email->from($from, $fromname); 
    $this->email->reply_to($reply, $fromname); 
    foreach($result as $row){ 
    $this->email->to($to); 
    $this->email->subject($subject); 
    $this->email->message($message1); 

    $this->email->send(); 
    } 

通過使用此代碼,郵件被髮送給一組用戶。這封郵件被收到爲垃圾郵件。這是因爲代碼或服務器問題的一些錯誤?

+0

可能重複[我的郵件總是將垃圾郵件文件夾,即使交付很晚笨PHP的](HTTP:/ /stackoverflow.com/questions/26986619/my-mails-is-always-going-to-spam-folder-even-delivering-very-late-in-codeigniter) – turntwo 2014-11-18 05:12:14

回答

0

主要問題可能是您的from地址。發送電子郵件時,您說的發件人是[email protected]。收到您的電子郵件後,該服務將查找Gmail的SPF(http://en.wikipedia.org/wiki/Sender_Policy_Framework)DNS記錄,以查看發送該電子郵件的服務器(您的服務器)是否爲Gmail所說的服務器,這是允許的發件人,當然不是。由於該檢查失敗,電子郵件很可能以垃圾郵件結束。

解決這個問題的方法是將您的from地址設置爲一個真實域,例如, [email protected]。然後,您需要設置SPF記錄,以便您的服務器是該域的可信發件人。有教程在那裏堆,以幫助這一點,但你可以簡單地使用它作爲一個TXT紀錄yourdomain.com:

v=spf1 ip4:<your server IP> ~all 

如果從yourdomain.com從其他服務發送電子郵件(如谷歌企業應用套件)你也想爲此添加規則。

即使如此,您的電子郵件也不能保證不會被垃圾郵件所覆蓋。如果郵件的內容過於簡單和類似垃圾郵件,或者如果您未包含取消訂閱鏈接,那麼您最終還是會收到垃圾郵件。

+0

如果$ from是NULL,那麼只有這個var被設置爲:'[email protected]'if($ from ==''){$ from='[email protected]';} – Sinto 2014-11-08 07:28:49

+0

雖然同樣的原則適用。您最終從該域名上的SPF記錄指定的授權發件人發送的電子郵件? – maknz 2014-11-10 01:44:02

0

好吧,我知道了罰款通過改變$配置和初始化($配置)的

$config = array(
     'protocol' => 'smtp', 
     'smtp_host' => $host, 
     'smtp_port' => $port, 
     'smtp_crypto' => $crypto, 
     'smtp_user' => $user_nam, 
     'smtp_pass' => $pwd, 
     'mailtype' => 'html', 
     'charset' => 'utf-8', 
     'wordwrap' => TRUE, 
     'smtp_auth' => TRUE 
     ); 

    $this->load->library('email', $config); 
    $this->email->set_newline("\r\n"); 
    $this->email->initialize($config);