[PHP] 如何利用 Pchome 的SMTP 發信(使用PHPMailer)

如果覺得這篇文章對您有所幫助,在觀看完文章之餘,希望能點選下方方廣告,當作是對YOGO的支持,讓YOGO更有寫作的動力。

YOGO在之前的「用PHP寄MAIL的方法」中就有提到「使用PHPMailer通過驗證的SMTP寄信」「使用PHPMailer透過Gmail 的SMTP 發信」,而這篇算是「線上發信如何通過驗證的SMTP(使用PHPMailer)」的補充說明。

一般來說前一篇「用PHP寄MAIL的方法」中提到的「使用PHPMailer通過驗證的SMTP寄信」「使用PHPMailer透過Gmail 的SMTP 發信」就足以應付一般使用者的需求,而這篇文章適合以下的情況:

1.ISP所提供的MAIL被停權,無法使用。
2.租用主機但無法使用mail函式(不過基本上這不太可能),且無openssl可以使用,無法利用Gmail的SMTP發信。(關於PHP安裝OPENSSL的方法,請參考這篇文章)
3.因為其他因素,需使用外部SMTP寄信。(不過會有什麼因素YOGO倒也真的想不出來)

其實免費的mail帳號其實除了yahoogmail之外還有很多,如PChome就有提供免費的mail帳號申請服務,不過也因為yahoogmail走的都是加密的smtp 465 Port,所以PHPmailer若無openssl的加持,是無法透過yahoogmail寄信的,不過PChome就不同了,因為它走的是標準未加密的smtp 25Port,所以我們可以使用PHPMailer通過PChomeSMTP驗證寄信,以下為相關步驟:



1.首先到「PChome的官網」,然後點選「信箱」服務。


2.若你已是「PChome會員」就直接輸入「帳號」、「密碼」然後按「登入」,若你非「PChome會員」則按「申請會員」



3.「登入」後點選「伺服器位置」













4.將「使用者名稱」「SMTP」的資料記下,等下PHPMailer寄信時會用的到。


5.下載 phpMailer 的類別: http://phpmailer.codeworxtech.com/index.php?pg=sf&p=dl ,建議您依據您使用的 PHP 版本來下載適合的類別。



6.以下為相關程式碼
include("class.phpmailer.php"); //匯入PHPMailer類別
$mail= new PHPMailer(); //建立新物件
$mail->IsSMTP(); //設定使用SMTP方式寄信
$mail->SMTPAuth = true; //設定SMTP需要驗證
$mail->Host = "smtp.pchome.com.tw"; //這裡填入剛剛從「伺服器位置」中所抄錄的SMTP主機位置
$mail->Port = 25; //設定SMTP埠位,預設為25埠。
$mail->CharSet = "big5"; //設定郵件編碼
$mail->Username = "*********"; //設定驗證帳號,也就是「PChome的會員帳號」。
$mail->Password = "*********"; //設定驗證密碼,也就是「PChome的會員密碼」。
$mail->From = XXX@XXX.XXX.XXX; //設定寄件者信箱
$mail->FromName = "測試人員"; //設定寄件者姓名
$mail->Subject = "PChome測試信件"; //設定郵件標題
$mail->Body = "大家好, 這是一封測試信件! "; //設定郵件內容
$mail->IsHTML(true); //設定郵件內容為HTML
$mail->AddAddress(123@123, "test"); //設定收件者郵件及名稱
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}

如果一切設定無誤的話,就可以收到由PChome寄出的mail。

另外下面延伸閱讀推薦的內二本書對phpmailer有詳細的介紹,有興趣的朋友可參考一下。

延伸閱讀:
最新 PHP + MySQL + Ajax 網頁程式設計
PHP + Ajax 網頁模組隨學隨用

留言

青花魚寫道…
不好意思,想請教一下,郵件伺服器是什麼呢,是不是一定要有才能使用php→pchome→發信
如果我是使用一般桌上pc可以設定嗎
另外php.ini是什麼呢?
我看有人用phpmailer,您寫的請依php版本去搭配,要怎麼看自己電腦php的版本呢
我去下載php時,發現它們好像都是程式碼,那要怎麼知道版本呢,很抱歉,因為我剛接觸,希望沒有造成您的困擾,謝謝!
YOGO寫道…
要發信不一定要用PHP,PHP是網頁動態程式語言,主要用在網頁設計應用上的,但我不明白的是你說"如果我是使用一般桌上pc可以設定嗎
",這是什麼意思,或是你直接跟我說你想作的事是什麼,我好方便推薦你適合的解決方案
Roy Huang寫道…
請問疑下,為什麼我都會出現Error sending: The following From address failed:XXX@XXX這樣的訊息..

這個網誌中的熱門文章

用PHP寄MAIL的方法

ImageMagick應用大全(一)

php安裝openssl的方法