2009年9月8日

[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 = [email protected]; //設定寄件者信箱
$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 網頁模組隨學隨用

3 則留言:

提到...

不好意思,想請教一下,郵件伺服器是什麼呢,是不是一定要有才能使用php→pchome→發信
如果我是使用一般桌上pc可以設定嗎
另外php.ini是什麼呢?
我看有人用phpmailer,您寫的請依php版本去搭配,要怎麼看自己電腦php的版本呢
我去下載php時,發現它們好像都是程式碼,那要怎麼知道版本呢,很抱歉,因為我剛接觸,希望沒有造成您的困擾,謝謝!

YOGO 提到...

要發信不一定要用PHP,PHP是網頁動態程式語言,主要用在網頁設計應用上的,但我不明白的是你說"如果我是使用一般桌上pc可以設定嗎
",這是什麼意思,或是你直接跟我說你想作的事是什麼,我好方便推薦你適合的解決方案

Roy 提到...

請問疑下,為什麼我都會出現Error sending: The following From address failed:XXX@XXX這樣的訊息..

聖誕跑趴歡樂降★韓版假兩件針織連衣裙$890,新款顯瘦棒球服連帽風衣外套下殺$510,冬新款歐美棉襖棉服連帽短款外套限量↘$530,秋冬新款韓版大碼毛領氣質毛料外套↘$680,快上左耳貓網路購物

您好!如圖太小看不清楚,請 點選此處 看詳細內容 左耳貓蝦皮賣場 https://shopee.tw/hrf5168 左耳貓 露天賣場 http://class.ruten.com.tw/user/index00.php?s=starbox 左耳貓粉...