網站導覽列



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

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

茶米。黃信溢

系統管理員

#第 1 樓 2008-12-26 @ 14:44:56茶米。黃信溢,,,

在上一篇([PHP] 線上發信如何通過驗證的SMTP(使用PHPMailer)) 中我們討論到如何使用 PHPMailer 類別來通過驗證的伺服器,其實如果您下載了PHPMailer並解開壓縮後,可以在<examples>資料夾中看到各個不同狀況下使用 PHPMailer 來發信的程式碼,其中<test_gmail.php>就是使用 PHPMailer透過Gmail的範例。

茶米整理一下在這裡分享給大家:

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

一般來說這樣即可完成使用 Gmail 發信的動作了,茶米在實作中有幾個要注意的事項敘述如下:

  1. 其中要注意的是Gmail 的 SMTP主機固定位址是 smtp.gmail.com,必須使用 465 埠以 SSL 的方式來連線。
  2. 有許多朋友可能在測試時還是無法正確連線,根據茶米的經驗要檢查的地方,是若要使用 SSL 的方式進行連線,PHP 必須安裝 OpenSSL 的擴充程式,如此才能正確連線並使用 Gmail 執行寄信的動作。

分享給您使用。



Re:[PHP] 如何利用 Gmail 的SMTP 發信(使用PHPMailer)

d.4

一般會員

#第 2 樓 2008-12-27 @ 00:30:44d.4,,,

經過我研究了五個小時!

最好使用php 5以上

因為php 4 ,有OpenSSL的bug…

然後phpmailer 使用2.1 以上版本for php 5/6

就一次就成功了



Re:[PHP] 如何利用 Gmail 的SMTP 發信(使用PHPMailer)

ctw

一般會員

#第 3 樓 2009-01-07 @ 23:55:32ctw,,,

請問各位大大,我也是用這個來做

但我顯示

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in E:\AppServ\www\star\phpmailer\class.smtp.php on line 122
Mailer : 錯誤SMTP Error: Could not connect to SMTP host.

請問有人可以幫我解答嗎@@?



Re:[PHP] 如何利用 Gmail 的SMTP 發信(使用PHPMailer)

ㄚ琪

一般會員

#第 4 樓 2009-01-08 @ 08:52:36ㄚ琪,,,

看這裡的說明:http://tw.php.net/manual/en/transports.inet.php

The ssl:// and tls:// transports (available only when openssl support is compiled into PHP) are extensions of the tcp:// transport which include SSL encryption. Since PHP 4.3.0 OpenSSL support must be statically compiled into PHP, since PHP 5.0.0 it may be compiled as a module or statically.

ssl:// will attempt to negotiate an SSL V2, or SSL V3 connection depending on the capabilities and preferences of the remote host. sslv2:// and sslv3:// will select the SSL V2 or SSL V3 protocol explicitly.

確認你的PHP版本及php.ini的設定,以知道你的fsockopen是否可以使用ssl的協定!



Re:[PHP] 如何利用 Gmail 的SMTP 發信(使用PHPMailer)

小朱

一般會員

#第 5 樓 2009-05-21 @ 18:38:10小朱,,,

不好意思,我也遇到相關問題。

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in C:\AppServ\www\LibrarySystem\class.smtp.php on line 122

我是PHP5,官網上的每個版本我都下載過了。還是會出現這種情況...



Re:[PHP] 如何利用 Gmail 的SMTP 發信(使用PHPMailer)

茶米。黃信溢

系統管理員

#第 6 樓 2009-05-22 @ 09:03:47茶米。黃信溢,,,

茶米與樓上一些網友不是說過了嗎:「PHP 必須安裝 OpenSSL 的擴充程式」,您沒有確認 PHP 中的 OpenSSL 是否打開,你下載多新的版本都沒有用啊!



Re:[PHP] 如何利用 Gmail 的SMTP 發信(使用PHPMailer)

YOGO

一般會員

#第 7 樓 2009-08-28 @ 13:40:29YOGO,,,

關於openssl的安裝方式可以參考一下這篇文章"php安裝openssl的方法 "

 

歡迎光臨YOGO論壇 http://blog.yogo.tw



Re:[PHP] 如何利用 Gmail 的SMTP 發信(使用PHPMailer)

騰仔

一般會員

#第 8 樓 2010-02-12 @ 22:08:00騰仔,,,

請問這個有 密件副本 嗎?



Re:[PHP] 如何利用 Gmail 的SMTP 發信(使用PHPMailer)

小包

一般會員

#第 9 樓 2010-02-14 @ 22:08:57小包,,,

//設定密件副本
$mail->AddBCC("EMAIL位址");



Re:[PHP] 如何利用 Gmail 的SMTP 發信(使用PHPMailer)

鍋小蓋

一般會員

#第 10 樓 2010-03-12 @ 11:17:57鍋小蓋,,,

您好。請教大大 我已設定完openssl,apache也有執行了 但在送出郵件的時候還是會出現 Mailer Error: SMTP Error: Could not connect to SMTP host. 在設定上我也使用以下資料,但還是會出現錯誤 $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->SMTPSecure = "ssl"; $mail->Host = "smtp.gmail.com"; $mail->Port = 465; 請問我是否有其他地方沒有注意到呢?



會員中心

帳號
密碼

記住我的帳號密碼。


申請會員  忘記密碼


討論區分類


相關書籍

無標題文件

{bname}

相關連結