[分享] PHPMailer 範例教學,PHP表單範例於ServerZoo虛擬主機空間上- ServerZoo虛擬主機使用教學文件區. [分享] PHPMailer 範例教學,PHP表單範例於ServerZoo虛擬主機 ... ... <看更多>
phpmailer範例 在 phpmailer利用gmail寄送郵件 - Mobile01 的美食出口停車場
class.phpmailer.php / class.pop3.php / class.smtp.php ... 我那時是用範例做測試,有出錯,看得到交握過程,所以知道錯誤原因。 ... <看更多>
phpmailer範例 在 [請益] 用mail()成功,但PHPMailer和PEAR::mail發信失敗! 的美食出口停車場
在下我邊看書
邊照範例執行
按照書上執行mail()很成功
一開始PHPMailer失敗還不以為意
沒想到後來連PEAR::mail 都不行
才發現情況嚴重...
因為後面不少章節範例都有用到PEAR::mail寄信的設定
結果遇到窘境跳脫不出來
這個問題困擾了我好幾天了
如果是程式語法理解能力太差
結果卡住的問題我還能接受
沒想到會卡在設定上..
但我都是按照書上的去設定不知道哪出了問題?
-------------------騙錢的分隔線-------------------
這本書是用WAMP5架設Apache和MySQL
目前安裝的是WAMP5_1.72版 PHP5.2.3版
(和用過的AppServ不同的是有2個php.ini
分別在
C:\wamp\php\php.ini ==>不知道有啥用,但書上還是會設定到這個
C:\wamp\Apache2\bin\php.ini ==>我只知道這個Apache伺服器會用到 )
一般用mail()
書上按照下列設定php.ini就可以成功寄信了
(2個php.ini都有設定)
------------------------------------
[mail function]
; For Win32 only.
SMTP = smtp.tbcnet.net ===>是用TBC台灣寬頻通訊的網路
; For Win32 only.
sendmail_from = 我的信箱@mail.tbcnet.net
------------------------------------------
後來PHPMailer的用法
書上只說把下載完檔案中的"class.phpmailer.php" 和"class.smtp.php"
複製到寄信網頁的程式資料夾
我就和範例一起都放在C:\wamp\www 資料夾
-----------------------------------------------
書上光碟的範例 只改了"=>"指的地方
第5行改了 SMTP
第6.7.8行書上說不用驗證可省略
第11行就是TBC帳號的信箱
1. $mail = new PHPMailer; // 引入類別檔
2.
3. // 所使用的郵件伺服器設定
4. $mail->IsSmtp(); // 使用 SMTP 伺服器寄信
=> 5. $mail->Host = "smtp.tbcnet.net"; // SMTP伺服器網址
=> 6. //$mail->SMTPAuth = true; // SMTP伺服器是否要求驗證
=> 7. //$mail->Username = "foo"; // SMTP 帳號
=> 8. //$mail->Password = "123456"; // SMTP 密碼
9.
10. // 寄件人與發送格式設定
=>11. $mail->From = '我的信箱@mail.tbcnet.net';
12. $mail->FromName = '旗標出版股份有限公司';
13. $mail->WordWrap = 72; // 超過 72 個字元就換行
14. $mail->CharSet = 'utf-8'; // 使用 UTF-8 編碼
15. $mail->Subject = $_POST['subject']; // 使用者輸入的主旨
16. $mail->Body = $_POST['body']; // 使用者輸入的信件內容
我查過使用mail()成功寄信TBC的SMTP不用驗證
錯誤提示為
Language string failed to load: recipients_failed 信箱@gmail.com
^^^^^^^^^^^^^^收件者
但是後來嘗試把TBC信箱的帳號密碼打進去了
還是一樣,錯誤提示只多了"寄送失敗:"的字樣
寄送失敗:
Language string failed to load: recipients_failed 信箱@mail.tbcnet.net
^^^^^^^^^^^^^收件者
google上有查"錯誤提示"相關資料 說我的信箱格式不對??
信箱還是複製貼上的應該不會打錯阿!!
----以下為google的錯誤說明(主要還是中文看的懂為主,就先看有中文的)----------
沒有定義發送郵箱$mail->From或格式不正確,
錯誤提示:Language string failed to load: recipients_failed [email protected],
注意,這個配置一定要正確,而且是正確的郵箱
-------------------------------------------------------------------------
再來就是書中大量提到的重頭戲PEAR::Mail
按照書上的設定更改Apache用的php.ini
C:\wamp\Apache2\bin\php.ini
-----------------------------
; Paths and Directories ;
; Windows: "\path1;\path2"
include_path = ".;c:\wamp\php\pear;C:\wamp\php\Smarty\libs"
^^^^^^^目前用到Smarty之後才加進去的
----------------------------------------------------------------------
按照書上的範例我也是只輸入了SMTP和我的信箱而已..
第1行輸入TBC的SMTP
第2.3.4行省略不用
第11行輸入TBC的信箱
=> 1. $params = array('host' => 'smtp.tbcnet.net');
=> 2. //'auth' => true,
=> 3. //'username' => 'foo', // SMTP 帳號
=> 4. //'password' => '123456'); // SMTP 密碼
5. $mailer = &Mail::factory('smtp',$params); // 建立使用SMTP的物件
6.
7. mb_internal_encoding('utf-8'); // 指定編碼格式
8. $headers = array( // 設定檔頭資訊
9. // 用 mb_encode_mimeheader() 將寄件人中的字串
10. // 轉成符合 SMTP 通訊協定要求的格式
=> 11. 'From' => ' <我的信箱@mail.tbcnet.net>',
12. 'To' => $_POST['to'],
13. // 用 mb_encode_mimeheader() 將郵件標題
14. // 轉成符合 SMTP 通訊協定要求的格式
15. 'Subject' => mb_encode_mimeheader($_POST['subject']),
16. 'Content-Type' => 'text/plain; charset="UTF-8"',
17. 'Content-Transfer-Encoding' => '8bit');
錯誤提示為
(之後將第2.3.4行的帳號密碼輸入錯誤提示還是一樣)
----------------------------------
寄送失敗:Failed to add recipient:
@localhost [SMTP: Invalid response code received from server
(code: 501, response: <@localhost>: no local part)]
------------------------------------------------------
用google查"SMTP Error 501"
(不知道有沒有人想看原文的我可以在PO上來)
英文用google翻譯完大概是
"該命令是正確的,確認,但參數(參數,如電子郵件 地址)是無效的。"
"在絕大多數情況下是由於SMTP錯誤501
由無效的電子郵件地址,一個無效的域名 收件人,
或一個Unix / Linux的發送郵件命令 不按照既定的標準。"
"如果你寫你自己的SMTP程序,而不是使用 建立的SMTP軟件,
你可能會得到一個501錯誤,
如果你 發送到收件人駐留在一個Microsoft Exchange服務器
並添加一個尾隨空格或點到域名 你的程序代碼。
在這種情況下,你通常會得到 一個 “501 5.5.4無效的地址”錯誤。"
"最後,如果你傳入的電子郵件病毒掃描在Exchange 服務器,
與防病毒掃描軟件集成到 兌換,那麼問題可能是一個錯誤在你的防毒軟體-
嘗試將其關閉,看看問題能否解決。"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^小紅傘關了沒啥差別.
------------------------------------------------------------------
不曉得有沒有可能是軟體版本的問題?
目前按照書上安裝的是WAMP5_1.72版 PHP5.2.3版
書上也說pear 套件之間有依存性
一併附上全部安裝的套件
可能版本還是哪個套件沒裝好?
PACKAGE VERSION STATE
Archive_Tar 1.3.7 stable
Console_Getopt 1.2.3 stable
Date 1.4.7 stable
MDB2 2.4.1 stable
MDB2_Driver_mysql 1.4.1 stable
Mail 1.2.0 stable
Mail_Mime 1.8.0 stable
Net_SMTP 1.4.2 stable
Net_Socket 1.0.9 stable
PEAR 1.9.1 stable
Pager 2.4.8 stable
Structures_Graph 1.0.3 stable
XML_Util 1.2.1 stable
---------------------------------------------------
目前是考慮到軟體版本?
或是TBC的SMTP的問題?
或是書中的設定有遺漏的地方?
這個問題卡住了我好幾天了
現在還在找解決的辦法...
如果都兩個問題都能解決的話那當然是最好的情況 :)
但沒那麼多心力指點兩個問題的話
目前優先希望解決的是PEAR::Mail的問題
(主要也是書上PHPMail只有提到一小節,後面比較多PEAR::Mail相關的範例講解)
已經嘗試找google和板上的解決方法
可能是關鍵字沒用對或是卡在某個癥結點沒發現
希望勞煩各位板友不吝指教,協助解惑
謝謝
-------------------end-------------------
ps.若覺得PO太長不易閱讀的話
我可以修成兩篇
或是把比較緊急的PEAR::Mail的問題留著就好
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.129.251
※ 編輯: liveoutmyway 來自: 123.110.129.251 (09/06 03:21)
... <看更多>