有关phpmailer的详细介绍及使用方法


Posted in PHP onJanuary 28, 2013

第一,需要下载PHPMailer文件包phpmailer. http://phpmailer.sourceforge.net/
第二,确认你的服务器系统已经支持socket ,通过phpinfo();查看是否支持sockets(socket 是属于PHP扩展部分),如果显现为“enabled”,那就是支持了。
第三,把文件解压到你的web服务器目录下,调用类就可以了.
首先包含class.phpmailer.php,然后创建对象,设置参数,调用成员函数。

例1,做成函数方便调用

<?php    
    require("phpmailer/class.phpmailer.php");    
    function smtp_mail( $sendto_email, $subject, $body, $extra_hdrs, $user_name){    
        $mail = new PHPMailer();    
        $mail->IsSMTP();                  // send via SMTP    
        $mail->Host = "200.162.244.66";   // SMTP servers    
        $mail->SMTPAuth = true;           // turn on SMTP authentication    
        $mail->Username = "yourmail";     // SMTP username  注意:普通邮件认证不需要加 @域名    
        $mail->Password = "mailPassword"; // SMTP password    
        $mail->From = "yourmail@yourdomain.com";      // 发件人邮箱    
        $mail->FromName =  "管理员";  // 发件人            $mail->CharSet = "GB2312";   // 这里指定字符集!    
        $mail->Encoding = "base64";    
        $mail->AddAddress($sendto_email,"username");  // 收件人邮箱和姓名    
        $mail->AddReplyTo("yourmail@yourdomain.com","yourdomain.com");    
        //$mail->WordWrap = 50; // set word wrap 换行字数    
        //$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件    
        //$mail->AddAttachment("/tmp/image.jpg", "new.jpg");    
        $mail->IsHTML(true);  // send as HTML    
        // 邮件主题    
        $mail->Subject = $subject;    
        // 邮件内容    
        $mail->Body = "   
    <html><head>   
    <meta http-equiv="Content-Language" content="zh-cn">   
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312">   
    </head>   
    <body>   
    I love php。   
    </body>   
    </html>   
    ";                                                                          
        $mail->AltBody ="text/html";    
        if(!$mail->Send())    
        {    
            echo "邮件发送有误 <p>";    
            echo "邮件错误信息: " . $mail->ErrorInfo;    
            exit;    
        }    
        else {    
            echo "$user_name 邮件发送成功!<br />";    
        }    
    }    
    // 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名)    
    smtp_mail("yourmail@yourdomain.com", "欢迎使用phpmailer!", "NULL", "yourdomain.com", "username");    
    ?>

注意:

1. 邮件的字符集设置, $mail->CharSet = "GB2312"; // 这里指定字符集!在这里我只指定为GB2312因为这样Outlook能正常显示邮件主题,我尝试过设为utf-8但在Outlook下显示乱码。
2. 如果是发送html格式的邮件,那么记得也指定
3. 如果你想用它来群发邮件的话,记得修改包含文件函数,如:
require("phpmailer/class.phpmailer.php");
改为
require_once("phpmailer/class.phpmailer.php");
否则的话会产生类的重定义。

个人认为要使用phpmailer,首先,需要有一个邮件服务器,PHP的 mail函数没有指定,应该是使用的PHP设置的SMTP。

而在这里需要具体指定,同时需要指定邮件服务器的管理者和密码。

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: https://3water.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!恭喜,邮件发送成功!"; 
} 
}
PHP 相关文章推荐
关于PHP递归算法和应用方法介绍
Apr 15 PHP
PHP 登录记住密码实现思路
May 07 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
PHP 提取图片img标记中的任意属性的简单实例
Dec 10 PHP
php简单的留言板与回复功能具体实现
Feb 19 PHP
教你如何解密 “ PHP 神盾解密工具 ”
Jun 20 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
Sep 11 PHP
php 类中的常量、静态属性、非静态属性的区别
Apr 09 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
PHP基于mcript扩展实现对称加密功能示例
Feb 21 PHP
ThinkPHP3.2框架操作Redis的方法分析
May 05 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
PHP输出时间差函数代码
Jan 28 #PHP
PHP调用Linux的命令行执行文件压缩命令
Jan 27 #PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
Jan 27 #PHP
用php来改写404错误页让你的页面更友好
Jan 24 #PHP
php对大文件进行读取操作的实现代码
Jan 23 #PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
Jan 23 #PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 #PHP
You might like
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
javascript面向对象快速入门实例
2015/01/13 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
javascript中基本类型和引用类型的区别分析
2015/05/12 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
javascript实现3D切换焦点图
2015/10/16 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
2017/10/19 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
2018/09/27 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
微信小程序实现图片压缩
2019/12/03 Javascript
如何基于JS截获动态代码
2019/12/25 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
python实现多线程采集的2个代码例子
2014/07/07 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
Python中使用pypdf2合并、分割、加密pdf文件的代码详解
2019/05/21 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
Python 的 f-string 可以连接字符串与数字的原因解析
2021/02/20 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
我的中国梦演讲稿高中篇
2014/08/19 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL