您好,欢迎访问一九零五行业门户网

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

推荐信息