在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.bkjia.com/phpjc/631600.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/631600.htmltecharticle在php开发利用phpmailer发送邮件是常用的做法了,这种比起php mail用好用多了,下面我们来看看phpmailer如何发送带有附件的电子邮件吧。 .首先...