一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

使用php發(fā)送有附件的電子郵件-(PHPMailer使用的實例分析)

復制代碼 代碼如下:
/*phpMailer是一個用于發(fā)送電子郵件的php函數(shù)包。它提供的功能包括:
  *.在發(fā)送郵時指定多個收件人,抄送地址,暗送地址和回復地址
  *.支持多種郵件編碼包括:8bit,base64,binary和quoted-printable
  *.支持SMTP驗證
  *.支持冗余SMTP服務器
  *.支持帶附件的郵件和Html格式的郵件
  *.自定義郵件頭
  *.支持在郵件中嵌入圖片
  *.調(diào)試靈活
  *.經(jīng)測試兼容的SMTP服務器包括:Sendmail,qmail,Postfix,Imail,Exchange等
  *.可運行在任何平臺之上

phpMailer是一個非常強大的php發(fā)送郵件類,可以設定發(fā)送郵件地址、回復地址、郵件主題、富文本內(nèi)容,上傳附件,.....
官方網(wǎng)站:http://phpmailer.worxware.com/
下載地址:http://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list
*/
require_once('include/phpMailer/class.phpmailer.php'); //導入phpMAILER類
$mail = new phpMailer(); //創(chuàng)建實例
$mail -> CharSet='utf-8'; //設置字符集
$mail -> SetLanguage('ch','include/phpMailer/language/');  //設置語言類型和語言文件所在目錄         
$mail -> IsSMTP(); //使用SMTP方式發(fā)送
$mail -> SMTPAuth = true; //設置服務器是否需要SMTP身份驗證 
$mail -> Host = SMTP_SERVER; //SMTP 主機地址 
$mail -> Port = SMTP_SERVER_PORT; //SMTP 主機端口
$mail -> From = SMTP_USER_MAIL; //發(fā)件人EMAIL地址
$mail -> FromName = 'jasonxu'; //發(fā)件人在SMTP主機中的用戶名 
$mail -> Username = SMTP_USER_NAME; //發(fā)件人的姓名 
$mail -> Password = SMTP_USER_PASS; //發(fā)件人在SMTP主機中的密碼 
$mail -> Subject = '測試郵件的標題'; //郵件主題 
$mail -> AltBody = 'text/html'; //設置在郵件正文不支持HTML時的備用顯示
$mail -> Body = '測試郵件的內(nèi)容';//郵件內(nèi)容做成
$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()) //發(fā)送郵件 
var_dump($mail -> ErrorInfo);  //查看發(fā)送的錯誤信息

注意:phpmailer如果添加附件的時候,在附件名稱里一定要寫明附件的后綴,如果不寫明附件后綴,默認的附件后綴會是.txt。
比如$mail -> AddAttachment('include/id.csv','att');//附件的路徑和附件名稱
如果向上面一樣添加附件發(fā)送,則最終接到的附件可能是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格式文件的附件類型可以是上面三種中的任意一種

以前項目中郵件發(fā)送的一個實例,整理個縮略版,方便套用:
復制代碼 代碼如下:
$body=$_smtp_body;
$mail=new phpMailer();//得到一個phpMailer實例
//$mail->SMTPSecure='tls';
$mail->CharSet="utf-8"; //設置編碼
$mail->IsSMTP();//設置采用SMTP方式發(fā)送郵件
$mail->Host=$_smtp_server;//設置SMTP郵件服務器的地址
$mail->Port=$_smtp_port;//設置郵件服務器的端口,默認為25
$mail->From=$_smtp_from_mail; //設置發(fā)件人的郵箱地址
$mail->FromName=$_smtp_from_name;//設置發(fā)件人的姓名
$mail->Username=$_smtp_username;
$mail->Password=$_smtp_password;
$mail->AddAddress("$email","");//設置收件的地址(參數(shù)1)和姓名(參數(shù)2)
$mail->SMTPAuth=true;//開啟SMTP認證
$mail->Subject=$_smtp_subject;//設置郵件的標題
//$mail->AltBody="text/html";
$mail->Body=$body;//郵件內(nèi)容
$mail->IsHTML(true);//設置內(nèi)容是否為html類型
//$mail->WordWrap=50;                                 //設置每行的字符數(shù)
//$mail->AddReplyTo("samzhang@tencent.com","samzhang");     //設置回復的收件人的地址
$mail->SMTPDebug=0;
if($mail->Send()){//發(fā)送郵件
  exit 'ok';
}else{
  exit 'fail';
}

大概記得以前初次使用phpMailer的時候,出現(xiàn)過莫名奇妙的問題,也在網(wǎng)上花了不少時間找資料,最終才得以解決。目前記得服務器php環(huán)境不能禁止fsockopen函數(shù),否則郵件發(fā)送不了,但也有解決的辦法。總之,一開始使用,總有不順,由于時間久遠,現(xiàn)在想來,也不知道具體改了什么。所以,將現(xiàn)在正在使用的phpMailer目錄文件打包上傳到CSDN,也為方便以后使用吧,同時也方便為此事煩惱的朋友。phpMailer下載:http://xiazai.jb51.NET/201304/yuanma/phpMailer_jb51NET.rar
另外,將當時出現(xiàn)的問題所收錄的內(nèi)容整理如下:

1、Error: Could not connect to SMTP host
原因1:不郵郵件系統(tǒng)要求的smtp請求不同一,但是都允許大寫,有些不支持小寫,比如網(wǎng)易,騰訊的郵箱。(至于是不是這樣,我沒測試過,反正都改為大寫,也不影響)

解決方法:
復制代碼 代碼如下:
public function IsSMTP() {
  $this->Mailer ='SMTP'; // 將smtp ->SMTP ;即原來是小寫,現(xiàn)在大寫。
}

// Choose the mailer and send through it
switch($this->Mailer) {
  case 'sendmail':
    return $this->SendmailSend($header, $body);
  case 'SMTP'://同樣 將smtp ->SMTP ;即原來是小寫,現(xiàn)在大寫。
    return $this->SmtpSend($header, $body);
  case 'mail':
  default:
    return $this->MailSend($header, $body);
}

2、SMTP Error: Could not connect to SMTP host
原因:有的虛擬主機,或服務器,為了安全起見屏蔽了“fsockopen()函數(shù)”導致無法發(fā)送郵件

解決方法:

啟用fsockopen函數(shù)

首先,在php.ini中去掉下面的兩個分號

;extension=php_sockets.dll

;extension=php_openssl.dll

 替換fsockopen函數(shù)

可以將class.smtp.php文件中fsockopen函數(shù)換成pfsockopen函數(shù)


3、Could not instantiate mail function
原因:

設置的參數(shù)不正確,我使用了gmail做一些基本測試,需要在次設置其他參數(shù)。

解決方法:

$mail->SMTPSecure = ‘tls'; //只需要加上這句

注:這種錯誤我沒碰到過,所以在上面的例子中,這個內(nèi)容我是加了注釋的。如果碰到這種錯誤的,可以使用這句試試。

php技術使用php發(fā)送有附件的電子郵件-(PHPMailer使用的實例分析),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 成人在线免费 | 日本亚洲精品色婷婷在线影院 | 色综合区 | 深夜小视频在线观看 | 精品综合久久88色鬼首页 | 婷婷六月综合网 | 欧美 xx性 在线 | 久热久操| 国产激情在线观看完整流畅 | 国产免费久久精品丫丫 | 99在线精品视频在线观看 | 99久久精品免费看国产高清 | 日韩久久精品一区二区三区 | 国产精品久久亚洲一区二区 | 婷婷久久综合九色综合九七 | 成人国产精品999视频 | 国产丝袜美腿高跟白浆 | 曰曰啪天天拍视频在线 | 99成人国产精品视频 | 亚洲女人天堂网 | 精品国产污网站在线观看15 | 日韩一区二区在线播放 | 精品欧美一区二区精品久久 | 日本黄色激情视频 | 国产精品麻豆一区二区 | 丁香在线 | xfplay影音先锋永久资源 | 麻豆久久精品免费看国产 | 久久久久亚洲 | 国产精选91热在线观看 | 亚洲成在人天堂一区二区 | 欧美日韩国产亚洲一区二区三区 | 色综合婷婷 | 久久精品国产国产 | 国产精品成人观看视频网站 | 日本欧美国产精品第一页久久 | 国产精品热久久毛片 | 91精品国产综合久久消防器材 | 国产精品久久久久无码av | 亚洲第三区 | 美女的胸又黄又www网站免费 |