2013-02-22 23 views
2

我使用Xampp,並且我想使用CodeIgniter發送電子郵件。如果使用SMTP出現錯誤:「您的郵件已成功使用以下協議發送:郵件」,但我什麼都沒有收到

Message: fsockopen(): unable to connect to ssl://smtp.googlemail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) Filename: libraries/Email.php

$config = Array(
    'protocol' => 'smtp', 
    'smtp_host' => 'ssl://smtp.googlemail.com', 
    'smtp_port' => 465, 
    'smtp_user' => '[email protected]', 
    'smtp_pass' => 'your_password' 
); 

$this->load->library('email', $config); 
$this->email->set_newline("\r\n"); 
$this->email->from('[email protected]', 'Your Name'); 
$this->email->to('(here I put my mail)@yahoo.com'); 
$this->email->subject('Email Test'); 
$this->email->message('Testing the email class.'); 
$this->email->send(); 
echo $this->email->print_debugger(); 

(line extension=php_openssl.dll is decomented) 

通過這些設置:

$this->load->library('email'); 
$this->email->set_newline("\r\n"); 
$this->email->from('[email protected]', 'Your Name'); 
$this->email->to('(here I put my mail)@yahoo.com'); 
$this->email->subject('Email Test'); 
$this->email->message('Testing the email class.'); 
$this->email->send(); 
echo $this->email->print_debugger(); 

出現消息:您的郵件已經發送成功使用以下方案:郵件

來源:「你名稱「 返回路徑:.......

但我沒有收到任何郵件。

什麼問題?

+0

聽起來像你需要自己的郵件服務器。附:如果你想降低某些東西,評論並說明原因。直到那時爲止。 – Nick 2013-02-22 18:41:36

+0

@尼克這不是投票應該如何工作。請不要爲了抵消其他人的降價而加註。 – 2013-02-22 18:50:04

+0

@Pekka웃如果有人不會解釋爲什麼他們低估了,他們應該這樣做,那麼我認爲沒有理由毀掉某些人的名聲。他們至少可以被告知如何改進。 upvote並非沒有道理 – Nick 2013-02-22 18:51:29

回答

0

只是在我的點點拋出。如果您只是將線路擴展= p​​hp_openssl.dll進行了分解,則可能必須在測試之前重新啓動apache。特別是如果你使用的是Windows系統。這正是我如何修復我的。檢查你的phpinfo()以確保你對你的php版本有ssl支持。假設你正在使用xampp,那應該在那裏。

我還建議FROM電子郵件是gmail帳戶。可能與smtp_user中使用的相同。您始終可以在郵件中包含您想要的其他電子郵件信息。如果我打算回覆發件人,而不是使用發件人的電子郵件,我使用的是Gmail帳戶。在郵件正文中,我可以包含郵件主題與主題相同的郵件鏈接。例如:

<a href="mail:[email protected]?subject=From The User's Form" >Reply User</a> 

當點擊鏈接的郵件時,我可以輕鬆地使用Outlook或Gmail進行回覆。這可能是有點多風,但它的工作原理,並阻止我的電子郵件中垃圾郵件文件夾


關於第二個例子中,不會在本地主機的工作結束了。所以我想你正在使用一個虛擬主機帳戶。某些主機會要求您指定在from字段中使用的smtp服務器,用戶名和密碼。最常見的smtp將是smtp.example.com。 IP也可以工作,嘗試ping通以獲得smtp IP(請注意,由於某些原因,這可能會改變)。包括這些,並試試看。


除上述外, 檢查服務器中配置的包羅萬象的電子郵件,看看是否曾經郵件到達。嘗試發送給自己。檢查垃圾郵件和垃圾文件夾。郵件已經成功離開了你,可能會排隊等待以後發貨。可能需要某種類型的服務器刷新。

2
  1. '郵件'協議意味着它使用PHP的mail()功能,只需提交給服務器的郵件代理。 '成功'僅僅意味着它被接受,但並不表示它是否曾經被試圖交付。郵件代理可能被關閉,配置錯誤等等。您需要檢查郵件日誌,或者更可能的話,詢問您的託管服務提供商。
  2. 如果您實際上使用[email protected]的'from'地址,我懷疑這封郵件實際上是否會通過。使用一個真實的電子郵件地址,它可以接收電子郵件
  3. 檢查您的垃圾郵件文件夾。使用Gmail


    關於第一個例子:

相關問題