在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');//附件的路径和附件名称
 本文地址:http://www.phprm.com/develop/43789.html
转载随意,但请附上文章地址:-)