上篇文章PHP mail()方法发送邮件部分邮箱无法收到邮件问题提到要介绍一下phpmailer这款免费开源的php 邮件程序,下面我们来看看吧,以下资料全部来自phpmailer官方网站:
PHPMailer 也是一个功能强大的邮件类
PHPMailer的主要功能特点:
- 支持邮件 s/mime加密的数字签名
- 支持邮件多个 TOs, CCs, BCCs and REPLY-TOs
- 可以工作在任何服务器平台,所以不用担心WIN平台无法发送邮件的问题的
- 支持文本/HTML格式邮件
- 可以嵌入image图像
- 对于邮件客户端不支持HTML阅读的进行支持
- 功能强大的发送邮件调试功能debug
- 自定义邮件header
- 冗余SMTP服务器支持
- 支持8bit, base64, binary, and quoted-printable 编码
- 文字自动换行
- 支持多附件发送功能
- 支持SMTP服务器验证功能
- 在Sendmail, qmail, Postfix, Gmail, Imail, Exchange 等平台测试成功
- 提供的下载文件中,包括内容详细的说明文档及示例说明,所以不用担心难于上手的问题!
- PHPMailer 非常小巧、简单、方便、快捷
以上资料由Jiucool 翻译自phpmailer 官网,转载请注明!
PHPMailer的使用(这里以使用gmail smtp发送邮件为例,当然也支持sendmail pop 等其他方式):
- 首先到http://phpmailer.worxware.com/ 下载最新版本的程序包
- 下载完成后,找到class.phpmailer.php 、class.smtp.php两个类放到自己的目录下!
- 然后新建一个php文件这里命名为:phpmail_jiucool.php
- phpmail_jiucool.php内容如下:
我直接将邮件发送模块写成一个函数postmail_jiucool_com(),大家使用的时候直接调用该函数即可,函数内容为:
function postmail_jiucool_com($to,$subject = "",$body = ""){
//Author:Jiucool WebSite: http://www.jiucool.org
//$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.org #换成@', '发件人名称');
$mail->AddReplyTo("邮件回复地址,如admin#jiucool.org #换成@","邮件回复人的名称");
$mail->Subject = $subject;
$mail->AltBody = "To view the message, please use an HTML compatible email viewer! - From www.jiucool.org"; // 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!恭喜,邮件发送成功!";
}
}
当然还有更多、更详细的配置方式,大家可以自由发挥!
版权声明:除特殊说明,文章均为博主 久酷 原创文章,转载请注明来源
久酷,你好。我在网站上用了一个用户上传图片的插件(imageuploader),该插件在用户上传图片后通过phpmailer发送邮件通知我。现在问题是,能够正常上传图片,但是邮件发送失败,显示
“Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:26 (Connection refused) in /home/heylogo/public_html/wordpress/wp-content/plugins/image-uploader/phpmailer/class.smtp.php on line 122”。我不知道该如何配置host、port等地方,希望能够得到你的回复。谢谢!
@标志视界, 你好,host 是第三方邮件的地址,比如说smtp.qq.com 或者 smtp.gmail.com 除非你在本机上搭建了邮件服务器才用localhost . 也可以参考下这里http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=371
@久酷, 谢谢,这个问题我已经解决了。在一段代码中设置好自己的邮箱地址即可,class.smtp.php类不需要修改。再次感谢!
@标志视界, ^_^ 欢迎再来哦
[…] 转自:http://www.jiucool.com/phpmailer-php-email/ […]
[…] This post was mentioned on Twitter by Carrie, 热点风向标. 热点风向标 said: PHPMailer 发送邮件(含详细介绍及使用方法说明) http://ff.im/-poMbw […]
服务器不支持mail是不是就不行了
@zzzhu, 不支持mail也可以发的,这里是通过 smtp发送邮件
这个有用吗?现在的免费邮箱铺天盖地~
@日光博客, 这个跟免费邮箱完全是两个概念,这个是直接供程序调用的,比如你注册某网站 该网站可以自动调用该程序给你发送激活邮件,难道你注册完网站还要网站站长,登录免费邮箱给你手动发邮件通知? 你网站密码丢了,要找回密码,还得打电话给站长,然后站长登录免费邮箱给你发密码? 有了这个一切自动化完成!
php盲 能简单改一下主题 我就知足了
@Thinkqob, 自己玩得有意思就好,哈哈
不错啊··Cool哥··现在对wordpress周围的应用研究地越来越深了··
@Jackson, 哈哈,不仅仅对wordpress, 也不仅仅对PHP,研究的范围好多呢,嘎嘎
支持多附件发送功能 😈 😈 😈 😈 😈
无敌了 ~
这个类太帅了 ~ 拿来玩 ~
@小邪, 我也非常喜欢这个php类,嘎嘎,PHP的类 应该是模仿JAVA后来才推出来的,倍感亲切啊, 😆 😆
可以搞到wordpress里面吗?大概意思明白,不过不知道怎么调用。
@离鸣, 嗯,完全可以搞到wordpress里面