最詳細的phpmailer的使用方法

第一,須要下載PHPMailer文件包phpmailer,PHPMailer 很是小巧、簡單、方便、快捷。php

第二,確認你的服務器系統已經支持socket ,經過phpinfo();查看是否支持sockets(socket 是屬於PHP擴展部分),若是顯現爲「enabled」,那就是支持了。
第三,把文件解後找到class.phpmailer.php 、class.smtp.php兩個類放到本身的目錄下!調用類就能夠了.
首先包含class.phpmailer.php,而後建立對象,設置參數,調用成員函數。
例1,作成函數方便調用html

 
  1. <?php    
  2.     require("phpmailer/class.phpmailer.php");    
  3.     function smtp_mail( $sendto_email, $subject, $body, $extra_hdrs, $user_name){    
  4.         $mail = new PHPMailer();    
  5.         $mail->IsSMTP();                  // send via SMTP    
  6.         $mail->Host = "200.162.244.66";   // SMTP servers    
  7.         $mail->SMTPAuth = true;           // turn on SMTP authentication    
  8.         $mail->Username = "yourmail";     // SMTP username  注意:普通郵件認證不須要加 @域名    
  9.         $mail->Password = "mailPassword"; // SMTP password    
  10.         $mail->From = "yourmail@yourdomain.com";      // 發件人郵箱    
  11.         $mail->FromName =  "管理員";  // 發件人    
  12.  
  13.         $mail->CharSet = "GB2312";   // 這裏指定字符集!    
  14.         $mail->Encoding = "base64";    
  15.         $mail->AddAddress($sendto_email,"username");  // 收件人郵箱和姓名    
  16.         $mail->AddReplyTo("yourmail@yourdomain.com","yourdomain.com");    
  17.         //$mail->WordWrap = 50; // set word wrap 換行字數    
  18.         //$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件    
  19.         //$mail->AddAttachment("/tmp/image.jpg", "new.jpg");    
  20.         $mail->IsHTML(true);  // send as HTML    
  21.         // 郵件主題    
  22.         $mail->Subject = $subject;    
  23.         // 郵件內容    
  24.         $mail->Body = "   
  25.     <html><head>   
  26.     <meta http-equiv="Content-Language" content="zh-cn">   
  27.     <meta http-equiv="Content-Type" content="text/html; charset=GB2312">   
  28.     </head>   
  29.     <body>   
  30.     I love php。   
  31.     </body>   
  32.     </html>   
  33.     ";                                                                          
  34.         $mail->AltBody ="text/html";    
  35.         if(!$mail->Send())    
  36.         {    
  37.             echo "郵件發送有誤 <p>";    
  38.             echo "郵件錯誤信息: " . $mail->ErrorInfo;    
  39.             exit;    
  40.         }    
  41.         else {    
  42.             echo "$user_name 郵件發送成功!<br />";    
  43.         }    
  44.     }    
  45.     // 參數說明(發送到, 郵件主題, 郵件內容, 附加信息, 用戶名)    
  46.     smtp_mail("yourmail@yourdomain.com", "歡迎使用phpmailer!", "NULL", "yourdomain.com", "username");    
  47.     ?>

複製安全

例2:服務器

 
  1. function postmail_jiucool_com($to,$subject = "",$body = ""){ 
  2. //Author:Jiucool WebSite: http://www.jb51.net 
  3. //$to 表示收件人地址 $subject 表示郵件標題 $body表示郵件正文 
  4. //error_reporting(E_ALL); 
  5. error_reporting(E_STRICT); 
  6. date_default_timezone_set("Asia/Shanghai");//設定時區東八區 
  7. require_once('class.phpmailer.php'); 
  8. include("class.smtp.php"); 
  9. $mail = new PHPMailer(); //new一個PHPMailer對象出來 
  10. $body = eregi_replace("[\]",'',$body); //對郵件內容進行必要的過濾 
  11. $mail->CharSet ="UTF-8";//設定郵件編碼,默認ISO-8859-1,若是發中文此項必須設置,不然亂碼 
  12. $mail->IsSMTP(); // 設定使用SMTP服務 
  13. $mail->SMTPDebug = 1; // 啓用SMTP調試功能 
  14. // 1 = errors and messages 
  15. // 2 = messages only 
  16. $mail->SMTPAuth = true; // 啓用 SMTP 驗證功能 
  17. $mail->SMTPSecure = "ssl"; // 安全協議 
  18. $mail->Host = "smtp.googlemail.com"; // SMTP 服務器 
  19. $mail->Port = 465; // SMTP服務器的端口號 
  20. $mail->Username = "SMTP服務器用戶名"; // SMTP服務器用戶名 
  21. $mail->Password = "SMTP服務器密碼"; // SMTP服務器密碼 
  22. $mail->SetFrom('發件人地址,如admin#jiucool.com #換成@', '發件人名稱'); 
  23. $mail->AddReplyTo("郵件回覆地址,如admin#jiucool.com #換成@","郵件回覆人的名稱"); 
  24. $mail->Subject = $subject; 
  25. $mail->AltBody = "To view the message, please use an HTML compatible email viewer! - From www.jiucool.com"; // optional, comment out and test 
  26. $mail->MsgHTML($body); 
  27. $address = $to; 
  28. $mail->AddAddress($address, "收件人名稱"); 
  29. //$mail->AddAttachment("images/phpmailer.gif"); // attachment 
  30. //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment 
  31. if(!$mail->Send()) { 
  32. echo "Mailer Error: " . $mail->ErrorInfo; 
  33. } else { 
  34. echo "Message sent!恭喜,郵件發送成功!"; 
  35. }

複製dom

注意:

1. 郵件的字符集設置, $mail->CharSet = "GB2312"; // 這裏指定字符集!在這裏我只指定爲GB2312由於這樣Outlook能正常顯示郵件主題,我嘗試過設爲utf-8但在Outlook下顯示亂碼。
2. 若是是發送html格式的郵件,那麼記得也指定
3. 若是你想用它來羣發郵件的話,記得修改包含文件函數,如:socket

 
  1. require("phpmailer/class.phpmailer.php");

複製函數

改成post

 
  1. require_once("phpmailer/class.phpmailer.php");

複製測試

不然的話會產生類的重定義。
我的認爲要使用phpmailer,首先,須要有一個郵件服務器,PHP的 mail函數沒有指定,應該是使用的PHP設置的SMTP。
而在這裏須要具體指定,同時須要指定郵件服務器的管理者和密碼。
PHPMailer 也是一個功能強大的郵件類 
PHPMailer的主要功能特色: 
支持郵件 s/mime加密的數字簽名 
支持郵件多個 TOs, CCs, BCCs and REPLY-TOs 
能夠工做在任何服務器平臺,因此不用擔憂WIN平臺沒法發送郵件的問題的 
支持文本/HTML格式郵件 
能夠嵌入image圖像 
對於郵件客戶端不支持HTML閱讀的進行支持 
功能強大的發送郵件調試功能debug 
自定義郵件header 
冗餘SMTP服務器支持 
支持8bit, base64, binary, and quoted-printable 編碼 
文字自動換行 
支持多附件發送功能 
支持SMTP服務器驗證功能 
在Sendmail, qmail, Postfix, Gmail, Imail, Exchange 等平臺測試成功 
提供的下載文件中,包括內容詳細的說明文檔及示例說明,因此不用擔憂難於上手的問題! ui

相關文章
相關標籤/搜索