在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
转载随意,但请附上文章地址:-)