[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)
[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)
在 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 版本來下載適合的類別。
下載完畢後請解壓縮到指定資料夾中,
其中重要的類別檔案為:
請將這個檔案放置與寄發信件程式同一層。
以下茶米簡單寫的一個範例:
- <?php
- include("class.phpmailer.php"); //匯入PHPMailer類別
- $mail= new PHPMailer(); //建立新物件
- $mail->IsSMTP(); //設定使用SMTP方式寄信
- $mail->SMTPAuth = true; //設定SMTP需要驗證
- $mail->Host = "XXX.XXX.XXX.XXX"; //設定SMTP主機
- $mail->Port = 25; //設定SMTP埠位,預設為25埠。
- $mail->CharSet = "big5"; //設定郵件編碼
- $mail->Username = "*********"; //設定驗證帳號
- $mail->Password = "*********"; //設定驗證密碼
- $mail->From = XXX@XXX.XXX.XXX; //設定寄件者信箱
- $mail->FromName = "測試人員"; //設定寄件者姓名
- $mail->Subject = "PHPMailer 測試信件"; //設定郵件標題
- $mail->Body = "大家好,
- 這是一封測試信件!
- "; //設定郵件內容
- $mail->IsHTML(true); //設定郵件內容為HTML
- $mail->AddAddress("david@e-happy.com.tw", "茶米"); //設定收件者郵件及名稱
- if(!$mail->Send()) {
- echo "Mailer Error: " . $mail->ErrorInfo;
- } else {
- echo "Message sent!";
- }
- ?>
如此即可通過有驗證的SMTP了。
Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)
一般會員
跪著接收這篇好文…
因為這個問題已經困擾我好久了....
謝謝!!茶米站長
Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)
一般會員
茶米站長
你有試過使用gmail當作smtp嗎?
我已經試超過五個小時了…
沒結果…可以點解一下嗎@@~?
感恩
Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

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

系統管理員
茶米本來下一篇就要寫 Gmail 這個主題,感謝YOGO馬上就放上很棒的連結。
茶米還是畫蛇添足的將內容完整上去,但是再加上實作時發現要注意的地方,提供給您參考:
http://www.dreamweaver.com.tw/index.php?fid=7&viewtopic=29692
Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)
一般會員
這些文章我都有看過
但是最後找到一個關鍵就是php 4 的話OpenSSL會有bug
最好用php 5以上…
我一次就成功了@@....
Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

一般會員
学习了
Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)
一般會員
請問一下只要...把class.phpmailer.php
與大大您寫的PHP 放在同一層資料夾即可使用嗎....
很高興找到解決問題的方法了..
但是看了一大堆東西...含examples 有點眼花撩亂...
不知道該怎麼使用呢><
Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)
一般會員
請問一下我安裝了AppServ
是不是在php.ini 中找到extension=php_openssl.dll 把它註解拿掉
且
C:/AppServ/php5/php_openssl.dll 有這個dll
代表可以用了嗎...還是要安裝openssl 呢?
Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)

系統管理員
Re:[PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)
一般會員
看來是個大工程呢...謝謝大大囉
另外在請教一下
假如我在用windows xP 安裝 iis 的smtp
但appserv 是apache+php 這樣架設smtp server 可以用嗎@@???
系統管理員