我们目前的项目主要是一些企业网站与电子商务网站,在项目中基本上都要用到发送邮件功能,在这里,我就给大家介绍php中一个很好用的组件-phpmailer组件,该组件相当完美的支持了php发送各种格式及编码的邮件,并支持html,相比php自带的mail函数,mail有太大的局限性,很容易导致发送邮件不成功,而phpmailer则弥补了mail函数的这些不足。

PHPMailer是一个用于发送电子邮件的PHP函数包。它提供的功能包括:
1、在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址

2、支持多种邮件编码包括:8bit,base64,binary和quoted-printable

3、支持SMTP验证

4、支持冗余SMTP服务器

5、支持带附件的邮件和Html格式的邮件

6、自定义邮件头

7、支持在邮件中嵌入图片

8、调试灵活

9、经测试兼容的SMTP服务器包括:Sendmail,qmail,Postfix,Imail,Exchange等

10、可运行在任何平台之上

phpmailer发送邮件的代码格式基本如下:

$mail = new PHPMailer(true); //实例化phpmailer对象,当然前提是先将其引入进来
$mail->IsSMTP(); // 设置mail模式为smtp格式
$mail->SMTPDebug = 1; //此处为打开phpmailer的调试功能,打开时可返回具体错误信息
$mail->CharSet=’UTF-8′; //设置发送邮件的编码类型
$mail->SMTPAuth = true; // 启用SMTP认证
$mail->SMTPSecure = “ssl”; // 设置服务前缀:目前知道的是利用gmail的smtp发送邮件时需要设置
$mail->Port = 465; // 设置smtp的服务端口
$mail->Host = “smtp.gmail.com”; // 设置smtp地址
$mail->Username = “[email protected]“; // 设置smtp邮箱的用户名
$mail->Password = “buytong1234”; // 设置smtp邮箱密码
$mail->AddReplyTo(“[email protected]” , “”);
$mail->From = ” [email protected]“; //设置发送者的邮箱
$mail->FromName = CIconv::gbkToUtf8(“百通物流网”); //设置发送者的用户名
$mail->AddAddress(“[email protected]“); //这里设置接收者的邮箱,多方发送可重复设置
$mail->Subject = CIconv::gbkToUtf8(“您获得了百通物流网的打折码”); //邮件标题
$mail->AltBody = “To view the message, please use an HTML compatible email viewer!”; // 这个一定要加
$mail->WordWrap = 80; // 设置换行字数
$mail->Body = “百通物流网邮件内容”; //设置邮件内容,支持html格式,当然图片也是
$mail->IsHTML(true); // 设置内容是否为html类型
$mail->Send()); //最后发出邮件

在项目中只要调用上面一段代码,修改一下基本信息内容即可发送邮件,呵呵,是不是很简单呢?
需要注意的是,我在微博项目中用163的smtp发送邮件到其他邮箱都问题,但是到gmail邮箱,发现发送不成功,于是后来注册了一个gmail邮箱测试,用gmail的smtp发送邮件,然后按上面的SMTPSecure类型设置,发送邮件成功了,包括gmail邮箱与其他邮箱都行了,具体为神马用其他邮箱smtp发送到gmail邮箱接受不到,我也没找到具体原因了。