[請益] 用mail()成功,但PHPMailer和PEAR::mail …

看板PHP作者 (friend forever)時間15年前 (2010/09/01 00:30), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
在下我邊看書 邊照範例執行 按照書上執行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 test@test.com, 注意,這個配置一定要正確,而且是正確的郵箱 ------------------------------------------------------------------------- 再來就是書中大量提到的重頭戲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)
文章代碼(AID): #1CVIusz- (PHP)
文章代碼(AID): #1CVIusz- (PHP)