程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中PHPMailer發送帶附件的電子郵件方法

php中PHPMailer發送帶附件的電子郵件方法

編輯:關於PHP編程

在php開發利用PHPMailer發送郵件是常用的做法了,這種比起php mail用好用多了,下面我們來看看PHPMailer如何發送帶有附件的電子郵件吧。

.首先到http://phpmailer.worxware.com/ 下載最新版本的程序包
2.下載完成後,找到class.phpmailer.php 、class.smtp.php兩個類放到自己的目錄下!
3.然後新建一個php文件這裡命名為:phpmail_jiucool.php
4.phpmail_jiucool.php內容如下:


實例

 代碼如下 復制代碼

function postmail_jiucool_com($to,$subject = "",$body = ""){
    //Author:Jiucool WebSite: http://www.jiucool.com
    //$to 表示收件人地址 $subject 表示郵件標題 $body表示郵件正文
    //error_reporting(E_ALL);
    error_reporting(E_STRICT);
    date_default_timezone_set("Asia/Shanghai");//設定時區東八區
    require_once('class.phpmailer.php');
    include("class.smtp.php");
    $mail             = new PHPMailer(); //new一個PHPMailer對象出來
    $body             = eregi_replace("[]",'',$body); //對郵件內容進行必要的過濾
    $mail->CharSet ="UTF-8";//設定郵件編碼,默認ISO-8859-1,如果發中文此項必須設置,否則亂碼
    $mail->IsSMTP(); // 設定使用SMTP服務
    $mail->SMTPDebug  = 1;                     // 啟用SMTP調試功能
                                           // 1 = errors and messages
                                           // 2 = messages only
    $mail->SMTPAuth   = true;                  // 啟用 SMTP 驗證功能
    $mail->SMTPSecure = "ssl";                 // 安全協議
    $mail->Host       = "smtp.googlemail.com";      // SMTP 服務器
    $mail->Port       = 465;                   // SMTP服務器的端口號
    $mail->Username   = "SMTP服務器用戶名";  // SMTP服務器用戶名
    $mail->Password   = "SMTP服務器密碼";            // SMTP服務器密碼
    $mail->SetFrom('發件人地址,如admin#jiucool.com #換成@', '發件人名稱');
    $mail->AddReplyTo("郵件回復地址,如admin#jiucool.com #換成@","郵件回復人的名稱");
    $mail->Subject    = $subject;
    $mail->AltBody    = "To view the message, please use an HTML compatible email viewer! - From www.jiucool.com"; // optional, comment out and test
    $mail->MsgHTML($body);
    $address = $to;
    $mail->AddAddress($address, "收件人名稱");
    //$mail->AddAttachment("images/phpmailer.gif");      // attachment
    //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
    if(!$mail->Send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!恭喜,郵件發送成功!";
        }
    }

注意:

phpmailer如果添加附件的時候,在附件名稱裡一定要寫明附件的後綴,如果不寫明附件後綴,默認的附件後綴會是.txt。
比如

 代碼如下 復制代碼 $mail -> AddAttachment('include/id.csv','att');//

附件的路徑和附件名稱
如果向上面一樣添加附件發送,則最終接到的附件可能是att.txt。
AddAttachment可以設置附件編碼方式和附件類型,比如上面的附件添加也可以設置為

 代碼如下 復制代碼 $mail -> AddAttachment('include/id.csv','att.csv',"binary","text/comma-separated-values");//

附件的路徑和附件名稱、
附件的編碼方式大概有這麼幾種:支持8bit, base64, binary, and quoted-printable 編碼
 
而CSV可接受的MIME Type
· application/octet-stream
· text/comma-separated-values(推薦)
· text/csv
所以,csv格式文件的附件類型可以是上面三種中的任意一種

實例

 代碼如下 復制代碼

require_once('include/PHPMailer/class.phpmailer.php'); //導入PHPMAILER類
$mail = new PHPMailer(); //創建實例
$mail -> CharSet='utf-8'; //設置字符集
$mail -> SetLanguage('ch','include/PHPMailer/language/');  //設置語言類型和語言文件所在目錄         
$mail -> IsSMTP(); //使用SMTP方式發送
$mail -> SMTPAuth = true; //設置服務器是否需要SMTP身份驗證 
$mail -> Host = SMTP_SERVER; //SMTP 主機地址 
$mail -> Port = SMTP_SERVER_PORT; //SMTP 主機端口
$mail -> From = SMTP_USER_MAIL; //發件人EMAIL地址
$mail -> FromName = 'jasonxu'; //發件人在SMTP主機中的用戶名 
$mail -> Username = SMTP_USER_NAME; //發件人的姓名 
$mail -> Password = SMTP_USER_PASS; //發件人在SMTP主機中的密碼 
$mail -> Subject = '測試郵件的標題'; //郵件主題 
$mail -> AltBody = 'text/html'; //設置在郵件正文不支持HTML時的備用顯示
$mail -> Body = '測試郵件的內容';//郵件內容做成
$mail -> IsHTML(true);  //是否是HTML郵件
$mail -> AddAddress('chinajason2008#gmail.com','jasonxu'); //收件人的地址和姓名 
$mail -> AddReplyTo('chinajason2008#gmail.com','jasonxu'); //收件人回復時回復給的地址和姓名
$mail -> AddAttachment('include/id.csv','att.csv');//附件的路徑和附件名稱
if(!$mail -> Send()) //發送郵件 
var_dump($mail -> ErrorInfo);  //查看發送的錯誤信息


只要加上這希就可以實例郵箱發送帶附件了

$mail -> AddAttachment('include/id.csv','att.csv');//附件的路徑和附件名稱

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved