复制代码 代码如下:
/*phpmailer是一个用于发送电子邮件的php函数包。它提供的功能包括:
*.在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址
*.支持多种邮件编码包括:8bit,ba64,binary和quoted-printable
*.支持smtp验证
*.支持冗余smtp服务器
*.支持带附件的邮件和html格式的邮件
*.自定义邮件头
*.支持在邮件中嵌入图片
*.调试灵活
*.经测试兼容的smtp服务器包括:ndmail,qmail,postfix,imail,exchange等
*.可运行在任何平台之上
phpmailer是一个非常强大的php发送邮件类,可以设定发送邮件地址、回复地址、邮件主题、富文本内容,上传附件,…..
官方网站:http://phpmailer.worxwa昆虫记读后感500字re.com/
下载地址:http://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list
*/
require_once(‘include/phpmailer/class.phpmailer.php’); //导入phpmailer类
$mail = new phpmailer(); //创建实例
$mail -> chart=’utf-8′; //设置字符集
$mail -> tlanguage(‘ch’,’include/phpmailer/language/’); //设置语言类型和语言文件所在目录
$mail -> issmtp(); //使用smtp方式发送
$mail -> smtpauth = true; //设置服务器是否需要smtp身份验证
$mail -> host = smtp_rver; //smtp 主机地址
$mail -> port = smtp_rver_port; //smtp 主机端口
$mail -> from = smtp_ur_mail; //发件人email地址
$mail -> fromname = ‘jasonxu’; //发件人在smtp主机中的用户名
$mail -> urname = smtp_ur_name; //发件人的姓名
$mail -> password = smtp_ur_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 -> nd()) //发送邮件
var_dump($mail -> errorinfo); //查看发送的错误信息
注意:phpmailer如果添加附件的时候,在附件名称里一定要写明附件的后缀,如果不写明附件后缀,默认的附件后缀会是.txt。
比如$mail -> addattachment(‘include/id.csv’,’att’);//附件的路径和附件名称
如果向上面一样添加附件发送,则最终接到的附件可能是att.txt。
addattachment可以设置附件编码方式和附件类型,比如上面的附件添加也可以设置为
$mail -> addattachment(‘include/id.csv’,’att.csv’,”binary”,”text/comma-parated-values”);//附件的路径和附件名称、
附件的编码方式大概有这么几种:支持8bit, ba64, binary, and quoted-printable 编码
而csv可接受的mime type
· application/octet-stream
· text/comma-parated-values(推荐)
· text/csv
所以,csv格式文件的附件类型可以是上面三种中的任意一种
以前项目中邮件发送的一个实例,整理个缩略版,方便套用:
复制代码 代码如下:
$body=$_smtp_body;
$mail=new phpmai男生怎么保养皮肤ler();//得到一个phpmailer实例
//$mail->smtpcure=’tls’;
$mail->chart=”utf-8″; //设置编码
$mail->issmtp();//设置采用smtp方式发送邮件
$mail->host=$_smtp_rver;//设置smtp邮件服务器的地址
$mail->port=$_smtp_port;//设置邮件服务器的端口,默认为25
$mail-封神演义作者>from=$_smtp_from_mail; //设置发件人的邮箱地址
$mail->fromname=$_smtp_from_name;//设置发件人的姓名
$mail->urname=$_smtp_urname;
$mail->password=$_smtp_password;
$mail->addaddress(“$email”,””);//设置收件的地址(参数1)和姓名(参数2)
$mail->smtpauth=true;//开启smtp认证
$mail->subject=$_smtp_subject;//设置邮件的标题
//$mail->altbody=”text/html”;
$mail->body=$body;//邮件内容
$mail->ishtml(true);//设置内容是否为html类型
//$mail->wordwrap=50; //设置每行的字符数
//$mail->addreplyto(“samzhang@tencent.com”,”samzhang”); //设置回复的收件人的地址
$mail->smtpdebug=0;
if($mail->nd()){//发送邮件
exit ‘ok’;
}el{
exit ‘fail’;
}
大概记得以前初次使用phpmailer的时候,出现过莫名奇妙的问题,也在网上花了不少时间找资料,最终才得以解决。目前记得服务器php环境不能禁止fsockopen函数,否则邮件发送不了,但也有解决的办法。总之,一开始使用,总有不顺,由于时间久远,现在想来,也不知道具体改了什么。所以,将现在正在使用的phpmailer目录文件打包上传到csdn,也为方便以后使用吧,同时也方便为此事烦恼的朋友。phpmailer下载:/d/file/titlepic/phpmailer_jb51net.rarbr />
另外,将当时出现的问题所收录的内容整理如下:
1、error: could not connect to smtp host
原因1:不邮邮件系统要求的smtp请求不同一,但是都允许大写,有些不支持小写,比如网易,腾讯的邮箱。(至于是不是这样,我没测试过,反正都改为大写,也不影响)
解决方法:
复制代码 代码如下:
public function issmtp() {
$this->mailer =’smtp’; // 将smtp ->smtp ;即原来是小写,现在大写。
}
// choo the mailer and nd through it
switch($this->mailer) {
ca ‘ndmail’:
return $this->ndmailnd($header, $body);
ca ‘smtp’://同样 将smtp ->smtp ;即原来是小写,现在大写。
return $this->smtpnd($header, $body);
ca ‘mail’:
default:
return $this->mailnd($header, $body);
}
2、smtp error: could not connect to smtp host
原因:有的虚拟主机,或服务器,为了安全起见屏蔽了“fsockopen()函数”导致无法发送邮件
解决方法:
启用fsockopen函数
首先,在php.ini中去掉下面的两个分号
;extension=php_sockets.dll
;extension=php_openssl.dll
替换fsockopen函数
可以将class.smtp.php文件中fsockopen函数换成pfsockopen函数
3、could not instantiate mail function
原因:
设置的参数不正确,我使用了gmail做一些基本测试,需要在次设置其他参数。
解决方法:
$mail->smtpcure = ‘t自然科学知识ls’; //只需要加上这句
注:这种错误我没碰到过,所以在上面的例子中,这个内容我是加了注释的。如果碰到这种错误的,可以使用这句试试。
本文发布于:2023-04-06 10:39:49,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/c2e8bfac19d8ae8d314747f39427f11e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:使用php发送有附件的电子邮件.doc
本文 PDF 下载地址:使用php发送有附件的电子邮件.pdf
留言与评论(共有 0 条评论) |