2013-09-30 129 views
1

我目前在我的網站上有一個聯繫表,它在提交後發送電子郵件通知。它完美地工作在我的最後,甚至當我把它從外部發送給朋友作爲他們正在接受的測試。CodeIgniter電子郵件未收到

但是,我在法國的客戶似乎無法收到此電子郵件,我不知道爲什麼。有什麼我需要做,以確保他們收到它?我認爲這是他們的最終目標,但他們絕對堅持認爲它不是,這是我的代碼問題。我嘗試了不同域名的不同電子郵件地址,但仍然沒有運氣!

$this->load->library('parser'); 
$config['mailtype'] = 'html'; 
$config['charset'] = 'utf-8'; 

$this->load->library('email'); 

$data = array(
    'first_name' => $this->input->post('first_name'), 
    'last_name' => $this->input->post('last_name'), 
    'email' => $this->input->post('email'), 
    'phone' => $this->input->post('phone'), 
    'message' => $this->input->post('message') 
); 

$body = $this->parser->parse('html_email', $data, true); 

$this->email->from('[email protected]', 'Duparc'); 
$this->email->to('[email protected]'); 
$this->email->subject('Test Email');   
$this->email->message($body); 
$this->email->send(); 
+0

也許電子郵件正在發送,但在垃圾郵件文件夾中。 –

回答

1

在我看來,問題不是來自CodeIgniter。假設郵件沒有進入垃圾郵件箱,您的客戶的提供商可能出於其他原因解僱您的郵件。我可以立即想到的一個原因是,您可能試圖從域名(例如test.com)發送您不允許的郵件。我的建議是開始嘗試使用另一種工具向您的法國客戶發送電子郵件(任何sendmail或postfix客戶端工具)並查看他是否確實收到。

如果成功,那麼問題可能來自您僞造的電子郵件(因此請嘗試使用有效的域名)。有時完全刪除它也會起作用(它可能會被外部IP取代)。

如果不是,那麼問題來自您的Web服務器的配置。我遇到了使用postfix的問題,我不得不明確地將"General Options" > "What domain to use in outbound mail"配置選項設置爲我的域名,以便被一個反覆無用地解散我們的郵件的反覆無常的服務器所接受。

如果什麼都不起作用,您可能還會使用另一個郵件服務器,它可能會很快解決問題。這裏是我使用sendmail強制CodeIgniter的代碼:

$config['protocol'] = 'sendmail'; 
$config['mailpath'] = '/usr/sbin/sendmail'; 
$this->email->initialize($config); 
+1

感謝您的回覆,他們目前正在尋找它,因爲我試着用他們的一個個人電子郵件地址發送它,並且它可以正常工作,因此他們現在正在檢查其他電子郵件帳戶。 –

相關問題