ServerZoo虛擬主機使用教學文件區 Home      會員列表      Register Now!
舊 2012-03-15, 11:55 AM   #1
Tech-SZ 的頭像
 
Tech-SZ
最高權限

預設 [分享] PHPMailer 範例教學,PHP表單範例於ServerZoo虛擬主機空間上

您好
**以下僅針對程式/表單的SMTP說明,一般的outlook的SMTP是不受影響的。以下範例,僅供參考**

如果您有表單功能
我們主機不支援PHP Mail(),也不支援用外部SMTP發信(例如用gmail的SMTP發)。
使用SMTP時,您一定需要使用我們主機上提供的SMTP帳密(即使您的網址的MX在外地也一樣),另外程式中也請勿使用SSL或TLS連線

若您是使用wordpress、joomla..等免費程式寄信,您將需要到他們後台,找到發信設定的地方,把phpmail改成smtp,然後輸入您在我們主機上新增的EMAIL帳號密碼,這樣便可以了。如果您MX在外地,那SMTP主機可以輸入localhost 即可。



以下為PHPMailer 範例分享,主要用來驗證主機SMTP功能正常,教學僅供參考,我方無法幫客戶查看修改客戶的任何程式或程式架構

★如果您是使用ServerZoo的虛擬主機郵件伺服器請參考以下教學

step1:
請先到cpanel控制台新增一個電子郵件帳號 (即使您的MX沒有指向我們主機,也一樣新增)
如果不知道如何新增,請看以下連結教學
http://forum.serverzoo.com/showthread.php?t=663

新增後請住密碼然後編輯您程式如下方教學,把 SMTP打入www.您的網址.com 然後一樣用我們主機上產生的EMAIL帳密驗證寄出即可,請記得EMAIL帳號要連@後面都要打入

step2:
請先下載四個檔案,將這些檔案放在您要發信程式的資料匣下
class.phpmailer.php, class.pop3.php, class.smtp.php, PHPMailerAutoload.php
檔案下載處:https://github.com/PHPMailer/PHPMailer/releases/
(請盡量選擇最新版本)*基本上*只需上傳上方所列的四個php檔案,其它或可不理會(6.0版不適用)

step3:
然後您主要發信程式放在哪或如何修改,您需要自行決定+處理或請貴單位的網管和程式人員處理,每個客戶的程式架構千萬種,我方僅提供教學參考,無法取代或幫客戶查看修改客戶的任何程式或程式架構

簡易版的
程式碼如下(僅供參考): //為說明,您可以將之刪除
PHP 5.6 之後的phpmailer 都會自動使用SSL,如果您沒有購買SSL您需要按照官方提供的說明才會通,說明如範例內,但如果你用php 5.6以下版本就不會有此問題。

代碼:
<?php
// 請將這支程式連同上方三支程式放在同一個資料匣下才可以
include("PHPMailerAutoload.php");

// 產生 Mailer 實體
$mail = new PHPMailer();

// 讓phpmailer 不要自動使用SSL連線(適用於PHP 5.6以上,非5.6可不用這段)
$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);

// 設定為 SMTP 方式寄信
$mail->IsSMTP();

// SMTP 伺服器的設定,以及驗證資訊
$mail->SMTPAuth = true;      
$mail->Host = "mail.XXX.com"; //此處請填寫您的郵件伺服器位置,通常是mail.網址。如果您MX指到外地,那這邊填入www.XXX.com 即可
$mail->Port = 25; //ServerZoo主機的郵件伺服器port為 25 

// 信件內容的編碼方式       
$mail->CharSet = "utf-8";

// 信件處理的編碼方式
$mail->Encoding = "base64";

// SMTP 驗證的使用者資訊
$mail->Username = "123@XXX.com";  // 此處為驗証電子郵件帳號,就是您在ServerZoo主機上新增的電子郵件帳號,@後面請務必一定要打。
$mail->Password = "XXXXOOOO";  //此處為上方電子郵件帳號的密碼 (一定要正確不然會無法寄出)

// 信件內容設定  
$mail->From = "123@XXXX.com"; //此處為寄出後收件者顯示寄件者的電子郵件 (請設成與上方驗証電子郵件一樣的位址)
$mail->FromName = "系統測試"; //此處為寄出後收件者顯示寄件者的名稱
$mail->Subject = "PHPMailer寄信測試標題"; //此處為寄出後收件者顯示寄件者的電子郵件標題
$mail->Body = "這是一封測是信件哦!";   //信件內容 
$mail->IsHTML(true);

// 收件人
$mail->AddAddress("XXX@AAA.com", "XXX系統通知信"); //此處為收件者的電子信箱及顯示名稱

// 顯示訊息
if(!$mail->Send()) {     
echo "Mail error: " . $mail->ErrorInfo;     
}else {     
echo "Mail sent";     
} 
?>


常見問題

Q: 如果MAIL的MX沒有指向主機動物園怎麼辦?

A:其實這個沒有影響,請您一樣到我們主機的CPANEL下去新增一個EMAIL帳號,然後發信主機那邊打入www.YOURdomain.com ,如果您連WWW都還未指向到我們主機,請MAIL主機那邊改打成localhost,然後一樣用我們主機上產生的EMAIL帳密驗證寄出即可

Q: 以上不是很清楚該如何使用,請問該問誰?
A: 請詢問貴單位程式人員即可,我方不提供任何程式客服喔

Q: 亂碼問題?
如遇到標題亂碼問題可以參考
http://samsharehome.blogspot.tw/2009...ler-utf-8.html
http://www.song100e.com/solve-the-ph...rbage-problem/

引用:
$mail->Subject="某某标题";
那么,像这样的,你要改成这样:
$mail->Subject = "=?utf-8?B?".base64_encode("某某标题")."?=";


Q: 程式提供單位是誰?
這些程式皆非我方提供,細節請洽PHPmailer 官方網站
https://github.com/PHPMailer/PHPMailer

感謝您

此篇文章於 2017-05-12 08:38 PM 被 Tech-SZ 編輯。.
Show SignatureDisplay Signature 回覆時引用此篇文章
回覆

書籤

主題工具
顯示模式

發文規則
不可以發表新主題
不可以發表回覆
不可以上傳附件
不可以編輯自己的文章

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼

論壇跳轉


所有時間均為台北時間。現在的時間是 05:01 AM


Powered by vBulletin® 版本 3.8.0
版權所有 ©2000 - 2018,Jelsoft Enterprises Ltd.