PHP使用PHPMailer发送邮件的简单使用方法


Posted in PHP onNovember 12, 2013

最近需要用到发送邮件的功能,原本是用PHP自带的mail()函数发送的。php mail()这个方法非常简单、方便、易用,但是除了网易邮箱、QQ邮箱、GMAIL邮箱等常用的邮箱可以收到之外,经测试HOTMAIL、TOM、LIVE等邮箱是收不到此类邮件的。所以就转而使用PHPMailer这个强大的邮件发送类。
使用官方自带的一些例子,有些会报 Mailer Error: Could not instantiate mail function. 这个错误。参考了一些资料之后,还是自己写了一个方法。代码很简单,就不多解释了。

function mailto($nickname, $address, $id, $activation_code)
{
 date_default_timezone_set('PRC'); 
 include_once("class.phpmailer.php"); $mail = new PHPMailer(); // defaults to using php "mail()"
 $mail->IsSMTP();
 $mail->Host = "smtp.163.com";   // SMTP 服务器  
 $mail->SMTPAuth = true;              // 打开SMTP 认证  
 $mail->Username = "nowamagic@163.com";  // 用户名
 $mail->Password = "yourpassword";          // 密码  
 //$body = file_get_contents('application/views/nmra/register.html');
 //$body = preg_replace('/\\\\/','', $body); //Strip backslashes
 $body = '<p><body style="margin: 10px;"></p>';
 $body .= '<div style="width: 640px; font-family: Arial, Helvetica, sans-serif; font-size: 14px; ">';
 $body .= '<div align="center"><img src="images/phpmailer.gif" style="height: 90px; width: 340px"></div>';
 $body .= '<p>'.$nickname.',您好。</p>';
 $body .= '<p>恭喜你成为简明现代魔法研究协会的第'.$id.'名会员。</p>';
 $body .= '<p>现代魔法研究协会(NowaMagic Research Association)是一个程序猿、攻城狮、设计狮和开发者们技术交流、话题讨论的社区。希望在这里你能找到感兴趣的话题与志同道合的朋友。</p>';
 $body .= '请点击以下链接验证您的邮箱,请注意域名为nowamagic.net:<a href="http://www.nowamagic.net/librarys/accounts/activation/?code="'.$activation_code.'" target="_blank">http://www.nowamagic.net/librarys/accounts/activation/?code='.$activation_code.'</a>';
 $body .= '<p>顺祝工作学习愉快,生活舒心。</p>';
 $body .= '</div></body>';
 //echo $body;
 $mail->AddReplyTo("nowamagic@163.com","Gonn");
 $mail->SetFrom('nowamagic@163.com', 'Gonn');
 $mail->AddReplyTo("nowamagic@163.com","Gonn");
 $address = "252211974@qq.com";
 //$address = "nowamagic@gmail.com";
 $mail->AddAddress($address, $nickname);
 $subject = "收到来自简明现代魔法的邮件";
 $mail->Subject = "=?UTF-8?B?".base64_encode($subject)."?=";
 // optional, comment out and test
 $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; 
 $mail->MsgHTML($body);
 //$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!";
 }
}

使用的时候只要引入两个PHP类,然后自己写个方法就OK了,两个类很小,发送邮件速度也很快。
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 等平台测试成功
提供的下载文件中,包括内容详细的说明文档及示
PHP 相关文章推荐
透析PHP的配置文件php.ini
Oct 09 PHP
MYSQL环境变量设置方法
Jan 15 PHP
php 数组的创建、调用和更新实现代码
Mar 09 PHP
比较简单的百度网盘文件直链PHP代码
Mar 24 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 PHP
php写入数据到CSV文件的方法
Mar 14 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
ThinkPHP实现登录退出功能
Jun 29 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 PHP
PHP迭代器的内部执行过程详解
Nov 12 #PHP
PHP迭代器实现斐波纳契数列的函数
Nov 12 #PHP
PHP SPL使用方法和他的威力
Nov 12 #PHP
PHP使用SOAP调用.net的WebService数据
Nov 12 #PHP
php获取远程图片体积大小的实例
Nov 12 #PHP
php过滤XSS攻击的函数
Nov 12 #PHP
php获取新浪微博数据API实例
Nov 12 #PHP
You might like
留言板翻页的实现详解
2006/10/09 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
Laravel框架实现定时Task Scheduling例子
2019/10/22 PHP
jquery控制listbox中项的移动并排序
2009/11/12 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
JS实现的竖向折叠菜单代码
2015/10/21 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
2018/08/15 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
python 3.6.5 安装配置方法图文教程
2018/09/18 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
学习和使用python的13个理由
2019/07/30 Python
css3 自定义字体font-face使用介绍
2014/05/14 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
英国最大的海报商店:GB Posters
2018/03/20 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
个人简历自我评价
2014/01/06 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
会计专业应届生自荐信
2014/06/28 职场文书
入股合作协议书
2014/10/12 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android
关于Python中进度条的六个实用技巧分享
2022/04/05 Python
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript