網站導覽列



[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

茶米。黃信溢

系統管理員

#第 1 樓 2008-12-24 @ 12:35:16茶米。黃信溢,,,

在 PHP 中可以使用 mail() 函式進行信件的發送,但是前提是您必須使用一個不用驗證即可寄信的 SMTP。
如果您必須使用一個需要帳號、密碼來通過驗證的 SMTP,就不能使用 mail() 函式了。
如果您不想再額外的安裝 PEAR 函式庫,建議您可以採用 opensource 的類別:phpMailer。

phpMailer 官方網站
http://phpmailer.codeworxtech.com/ 

您可以在此下載 phpMailer 的類別:
http://phpmailer.codeworxtech.com/index.php?pg=sf&p=dl

建議您依據您使用的 PHP 版本來下載適合的類別。
下載完畢後請解壓縮到指定資料夾中,
其中重要的類別檔案為:
請將這個檔案放置與寄發信件程式同一層。

以下茶米簡單寫的一個範例: 

 
  1. <?php
  2. include("class.phpmailer.php"); //匯入PHPMailer類別   
  3.   
  4. $mailnew PHPMailer(); //建立新物件    
  5. $mail->IsSMTP(); //設定使用SMTP方式寄信    
  6. $mail->SMTPAuth = true; //設定SMTP需要驗證    
  7. $mail->Host = "XXX.XXX.XXX.XXX"//設定SMTP主機    
  8. $mail->Port = 25; //設定SMTP埠位,預設為25埠。    
  9. $mail->CharSet = "big5"//設定郵件編碼    
  10.   
  11. $mail->Username = "*********"//設定驗證帳號    
  12. $mail->Password = "*********"//設定驗證密碼    
  13.   
  14. $mail->From = XXX@XXX.XXX.XXX; //設定寄件者信箱    
  15. $mail->FromName = "測試人員"//設定寄件者姓名    
  16.   
  17. $mail->Subject = "PHPMailer 測試信件"//設定郵件標題    
  18. $mail->Body = "大家好,   
  19. 這是一封測試信件!   
  20. "; //設定郵件內容    
  21. $mail->IsHTML(true); //設定郵件內容為HTML    
  22. $mail->AddAddress("david@e-happy.com.tw""茶米"); //設定收件者郵件及名稱    
  23.   
  24. if(!$mail->Send()) {    
  25. echo "Mailer Error: " . $mail->ErrorInfo;    
  26. else {    
  27. echo "Message sent!";    
  28. }
  29. ?>  


如此即可通過有驗證的SMTP了。



Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

d.4

一般會員

#第 2 樓 2008-12-25 @ 01:10:34d.4,,,

跪著接收這篇好文…

因為這個問題已經困擾我好久了....

謝謝!!茶米站長

 



Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

d.4

一般會員

#第 3 樓 2008-12-25 @ 04:19:10d.4,,,

茶米站長

你有試過使用gmail當作smtp嗎?

我已經試超過五個小時了…

沒結果…可以點解一下嗎@@~?

感恩



Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

YOGO

一般會員

#第 4 樓 2008-12-26 @ 11:39:00YOGO,,,


Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

茶米。黃信溢

系統管理員

#第 5 樓 2008-12-26 @ 15:10:45茶米。黃信溢,,,

茶米本來下一篇就要寫 Gmail 這個主題,感謝YOGO馬上就放上很棒的連結。

茶米還是畫蛇添足的將內容完整上去,但是再加上實作時發現要注意的地方,提供給您參考:

http://www.dreamweaver.com.tw/index.php?fid=7&viewtopic=29692



Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

d.4

一般會員

#第 6 樓 2008-12-27 @ 00:32:30d.4,,,

這些文章我都有看過

但是最後找到一個關鍵就是php 4 的話OpenSSL會有bug

最好用php 5以上…

我一次就成功了@@....



Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

军军

一般會員

#第 7 樓 2009-03-02 @ 15:22:00军军,,,

学习了



Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

迷路

一般會員

#第 8 樓 2009-05-25 @ 21:07:03迷路,,,

請問一下只要...把class.phpmailer.php
與大大您寫的PHP 放在同一層資料夾即可使用嗎....

很高興找到解決問題的方法了..
但是看了一大堆東西...含examples  有點眼花撩亂...

不知道該怎麼使用呢><



Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

迷路

一般會員

#第 9 樓 2009-05-27 @ 01:43:25迷路,,,

請問一下我安裝了AppServ
是不是在php.ini 中找到extension=php_openssl.dll  把它註解拿掉

C:/AppServ/php5/php_openssl.dll  有這個dll
代表可以用了嗎...還是要安裝openssl 呢?



Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

茶米。黃信溢

系統管理員

Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

迷路

一般會員

#第 11 樓 2009-05-27 @ 13:53:30迷路,,,

看來是個大工程呢...謝謝大大囉

另外在請教一下
假如我在用windows xP 安裝 iis 的smtp 
但appserv 是apache+php   這樣架設smtp server 可以用嗎@@???





會員中心

帳號
密碼

記住我的帳號密碼。


申請會員  忘記密碼


討論區分類


相關書籍

無標題文件

{bname}

相關連結