1. 程式人生 > >利用smtp.163.com 傳送郵件(本地無需伺服器)

利用smtp.163.com 傳送郵件(本地無需伺服器)

第一步:需要下載PHPMailer檔案包phpmailer-1.73.tar.gz 來自開源社群:

http://phpmailer.sourceforge.net/

第二步:確認你的伺服器系統已經支援socket 如下圖,通過phpinfo();檢視是否支援sockets

http://www.cgsir.com/download/experience/images/phpmailer_socket.jpg


  如果沒有這一項就請注意: socket 是屬於PHP擴充套件部分,編譯時必須給定一個用於./configure --enable-sockets 的配置選項。
第三步:把檔案解壓到你的web伺服器目錄下,呼叫類就可以了,說明:首先包含 class.phpmailer.php,然後建立物件,設定引數,呼叫成員函式。具體請見下面的示例程式碼:

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


php

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


/*******************************

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


*

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


*******************************/

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


set_time_limit(120);//

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


require("class.phpmailer.php");

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name) {

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail = new PHPMailer();

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->IsSMTP(); // send via SMTP

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->Host = "smtp.163.com"; // SMTP servers 注意:好像聽說是隻有2006年以前申請的163郵箱具有此功能

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->SMTPAuth = true; // turn on SMTP authentication

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->Username = "fuyongjie.100"; // SMTP username 注意:普通郵件認證不需要加 @域名

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->Password = "************"; // SMTP password(我把我的密碼給隱了)

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->From = "[email protected]"; // 發件人郵箱

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->FromName = "fuyongjie"; // 發件人

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->CharSet = "utf-8"; // 這裡指定字符集!

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->Encoding = "base64";

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->AddAddress($sendto_email,"yangli"); // 收件人郵箱和姓名

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->AddReplyTo("[email protected]","163.com");

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


//$mail->WordWrap = 50; // set word wrap

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


//$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment
$mail->AddAttachment('stat.rar','更改後的名字.rar');

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->IsHTML(true); // send as HTML

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


// 郵件主題

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->Subject = $subject;

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


// 郵件內容

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->Body = '

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


歡迎來到http://prdownloads.sourceforge.net/phpmailer/phpmailer-1.73.zip?download

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


下載phpmailer!

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


';

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


$mail->AltBody ="text/html";

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


if(!$mail->Send())

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


{

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


echo "郵件傳送有誤 ";

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


echo "郵件錯誤資訊: " . $mail->ErrorInfo;

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


exit;

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


}

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


else {

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


echo "$user_name 郵件傳送成功!163to qq";

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


}

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


}

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


// 引數說明(傳送到, 郵件主題, 郵件內容, 附加資訊, 使用者名稱)

http://www.phpweblog.net/Images/OutliningIndicators/None.gif http://www.phpweblog.net/Images/OutliningIndicators/None.gif


smtp_mail('[email protected]', '從163發來的!', 'NULL', '163.com', 'fuyongjie');

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


?>

http://www.phpweblog.net/Images/OutliningIndicators/None.gif


要注意的內容:

  1. 郵件的字符集設定, $mail->CharSet = "GB2312"; // 這裡指定字符集!在這裡我只指定為GB2312因為這樣Outlook能正常顯示郵件主題,我嘗試過設為utf-8但在Outlook下顯示亂碼。
  2. 如果是傳送html格式的郵件,那麼記得也指定
  3. 如果你想用它來群發郵件的話,記得修改包含檔案函式,如:
  require("phpmailer/class.phpmailer.php");
  改為
  require_once("phpmailer/class.phpmailer.php");
  否則的話會產生類的重定義。