PHPMailer 发送邮件(含详细介绍及使用方法说明)

上篇文章PHP mail()方法发送邮件部分邮箱无法收到邮件问题提到要介绍一下phpmailer这款免费开源的php 邮件程序,下面我们来看看吧,以下资料全部来自phpmailer官方网站

PHPMailer 也是一个功能强大的邮件类

PHPMailer的主要功能特点:

  1. 支持邮件 s/mime加密的数字签名
  2. 支持邮件多个 TOs, CCs, BCCs and REPLY-TOs
  3. 可以工作在任何服务器平台,所以不用担心WIN平台无法发送邮件的问题的
  4. 支持文本/HTML格式邮件
  5. 可以嵌入image图像
  6. 对于邮件客户端不支持HTML阅读的进行支持
  7. 功能强大的发送邮件调试功能debug
  8. 自定义邮件header
  9. 冗余SMTP服务器支持
  10. 支持8bit, base64, binary, and quoted-printable 编码
  11. 文字自动换行
  12. 支持多附件发送功能
  13. 支持SMTP服务器验证功能
  14. Sendmail, qmail, Postfix, Gmail, Imail, Exchange 等平台测试成功
  15. 提供的下载文件中,包括内容详细的说明文档及示例说明,所以不用担心难于上手的问题!
  16. PHPMailer 非常小巧、简单、方便、快捷

以上资料由Jiucool 翻译自phpmailer 官网,转载请注明!

PHPMailer的使用(这里以使用gmail smtp发送邮件为例,当然也支持sendmail  pop 等其他方式):

  1. 首先到http://phpmailer.worxware.com/ 下载最新版本的程序包
  2. 下载完成后,找到class.phpmailer.php 、class.smtp.php两个类放到自己的目录下!
  3. 然后新建一个php文件这里命名为:phpmail_jiucool.php
  4. 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!恭喜,邮件发送成功!";
        }
    }

当然还有更多、更详细的配置方式,大家可以自由发挥!

47 Responses to “PHPMailer 发送邮件(含详细介绍及使用方法说明)”

  1. 标志视界 says:

    久酷,你好。我在网站上用了一个用户上传图片的插件(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等地方,希望能够得到你的回复。谢谢!

    • 久酷 says:

      @标志视界, 你好,host 是第三方邮件的地址,比如说smtp.qq.com 或者 smtp.gmail.com 除非你在本机上搭建了邮件服务器才用localhost . 也可以参考下这里http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=371

  2. […] 转自:http://www.jiucool.com/phpmailer-php-email/ […]

  3. […] This post was mentioned on Twitter by Carrie, 热点风向标. 热点风向标 said: PHPMailer 发送邮件(含详细介绍及使用方法说明) http://ff.im/-poMbw […]

  4. zzzhu says:

    服务器不支持mail是不是就不行了

  5. 日光博客 says:

    这个有用吗?现在的免费邮箱铺天盖地~

    • 久酷 says:

      @日光博客, 这个跟免费邮箱完全是两个概念,这个是直接供程序调用的,比如你注册某网站 该网站可以自动调用该程序给你发送激活邮件,难道你注册完网站还要网站站长,登录免费邮箱给你手动发邮件通知? 你网站密码丢了,要找回密码,还得打电话给站长,然后站长登录免费邮箱给你发密码? 有了这个一切自动化完成!

  6. Thinkqob says:

    php盲 能简单改一下主题 我就知足了

  7. Jackson says:

    不错啊··Cool哥··现在对wordpress周围的应用研究地越来越深了··

  8. 小邪 says:

    支持多附件发送功能 😈 😈 😈 😈 😈
    无敌了 ~
    这个类太帅了 ~ 拿来玩 ~

    • 久酷 says:

      @小邪, 我也非常喜欢这个php类,嘎嘎,PHP的类 应该是模仿JAVA后来才推出来的,倍感亲切啊, 😆 😆

  9. 离鸣 says:

    可以搞到wordpress里面吗?大概意思明白,不过不知道怎么调用。

Leave a Reply


正在读取数据……