2013-01-06 89 views
2

我正在使用以下代碼來使用我的amazon服務憑證發送電子郵件。但消息沒有得到傳送出去......AWS SES codeigniter郵件失敗

這是我的代碼:

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

$config = array(
    'protocol' => 'smtp', 
    'smtp_host' => 'email-smtp.us-east-1.amazonaws.com', 
    'smtp_user' => '******', 
    'smtp_pass' => '*********', 
    'smtp_port' => 25 
); 

$this->email->initialize($config); 

$this->email->from('[email protected]'); 
$this->email->to('[email protected]'); 

$this->email->subject('Test'); 
$this->email->message('test'); 
$this->email->set_newline("\r\n"); 
$this->email->send(); 
$this->email->print_debugger(); 

我怎樣才能解決呢?

+0

調試器出現任何錯誤? – WebweaverD

+0

no..it沒有顯示點兒 –

回答

0

只要改變email-smtp.us-east-1.amazonaws.com到SSL://email-smtp.us-east-1.amazonaws.com

+1

在應用此以下錯誤SIS未來 甲PHP錯誤遇到 嚴重性:警告 消息:的fsockopen():SSL操作與代碼1 OpenSSL的錯誤消息失敗:錯誤: 140770FC:SSL例程:SSL23_GET_SERVER_HELLO:未知協議 文件名:庫/ Email.php 行號:?1673 –

2

得到它的工作我添加了以下幾行我的配置/ email.php文件

$config['newline']  = "\r\n"; 
$config['smtp_crypto'] = 'tls'; 

注意:您需要CI 2.1.0 or later for the smtp_crypto directive工作

我希望它會通過增加給你的配置陣列工作過:

$config = array(
    'protocol' => 'smtp', 
    'smtp_host' => 'email-smtp.us-east-1.amazonaws.com', 
    'smtp_user' => '******', 
    'smtp_pass' => '*********', 
    'smtp_port' => 25, 
    'newline' => "\r\n", 
    'smtp_crypto' => 'tls' 
); 
+2

爲什麼$配置[ 'smtp_crypto']這不是文檔的一部分!我已經失去了兩個小時,試圖解決這個問題。謝謝老兄! –

0

我找到解決辦法: 如果您正在使用TLS

然後在這個地方 email-smtp.us-east-1.amazonaws.com

使用 TLS的://電子郵件的SMTP。 us-east-1.amazonaws.com

和 添加此 $配置[ '換行符'] = 「\ r \ n」 個; 你已經定義了SMTP配置。

我面臨同樣的問題,通過改變這兩個問題解決。

我希望這個建議也能幫助你們。