首頁  >  文章  >  後端開發  >  php發送郵件問題的解決方法

php發送郵件問題的解決方法

墨辰丷
墨辰丷原創
2018-06-09 14:11:131918瀏覽

這篇文章主要介紹php發送郵件問題的解決方法,有興趣的朋友參考下,希望對大家有幫助。

php實作發送郵件,一般常用的是開源專案PHPMailer來實現,那麼除此之外,還有什麼其他的好的專案嗎?

解決方法:

使用SMTP協定來傳送郵件吧

在CodeIgniter裡面使用它內建的郵件類別來傳送郵件

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

$to = "aa@bb.cc";
$subject = "test";
$message = "hello!";

$config["protocol"]   = "smtp";
$config["smtp_host"]  = "smtp.163.com";
$config["smtp_user"]  = "username@163.com";
$config["smtp_pass"]  = "password";
$config["mailtype"]   = "html";
$config["validate"]   = true;
$config["priority"]   = 3;
$config["crlf"]     = "/r/n";
$config["smtp_port"]  = 25;
$config["charset"]   = "utf-8";
$config["wordwrap"]   = TRUE;
$this->email->initialize($config);
$this->email->from('xxxx@163.com', 'xxxx');
$this->email->to($to);   
$this->email->subject($subject);
$this->email->message($message); 
$this->email->send();

這種方式傳送郵件無需裝任何軟體,但需要你寫更多的程式碼,而且要對SMTP比較熟悉。

但是如果你不自己寫,而是直接使用別人寫好的現成的程式碼的話,那這種方法無疑是最省事的:

不需要自己搭建SMTP伺服器,也不需要寫很多的程式碼。

總結:

目前PHP自帶的就是透過基於sendmail的mail()函數來傳送郵件,不過前提是伺服器上必須要安裝sendmail,很多伺服器空間商是沒有安裝sendmail郵件伺服器的。所以這就有一定限制。

所以目前就有很多基於SMTP來傳送郵件的開源元件,最出名的應該是phpMailer,這個你已經知道了我就不多說了,我這裡再說說其它的方法吧。
1、XPertMailer:這個也是開源的PHP發送郵件的元件,和phpMailer類似,也很方便,這裡是它的官網(http://xpertmailer.sourceforge.net/),我親自測試過,真得挺好的。

2、JMail:JMail是Windows下的元件,不過PHP支援透過COM來呼叫它,這也是一種解決方案吧,不過前提是Web Server如果在Windows運行倒是可以考慮,否則還是算了吧。

3、網路上有很多人寫的基於SMTP的mail類,也是可以用的,但是所支援功能就比較簡單了。如果要求不高,也可以考慮。

4、這裡還有20個比較出名開源PHP發送郵件的元件,本人沒有一一測試過,不發表看法。你可以自己試試看。在這裡貼上地址:
介紹20個PHP發送郵件郵件開源專案

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

相關推薦:

PHP Mysql jQuery實作密碼找回的功能

##php利用正規表示式提取內容中的連結

PHP表單資料驗證類別#

以上是php發送郵件問題的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn