使用 PHPMailer 发送邮件[bak]


PHPMailer 是一个强大的 PHP 编写的邮件发送类,使用它可以更加便捷的发送邮件,并且还能发送附件和 HTML 格式的邮件,同时还能使用 SMTP 服务器来发送邮件。
=
大家也许会问,PHP 不是已经内置了 mail() 函数了吗,为什么要用 PHPMailer 呢?mail() 函数功能并不完善,只能发送文本的 email,并且 mail() 函数只能应用在 Linux 服务器(很多装在 Win 主机的 WP 博客用户注册收不到邮件也是这个原因),还有一个最大的问题就是使用 mail() 函数发送的邮件没有进行身份验证,很多邮件收不到使用 mail() 函数发送的邮件或者发送的邮件直接进入垃圾邮箱
PHPMailer 主要功能
  1. 在邮件中包含多个 TO、CC、BCC 和 REPLY-TO。
  2. 平台应用广泛,支持的 SMTP 服务器包括 Sendmail、qmail、Postfix、Gmail、Imail、Exchange 等等。
  3. 支持嵌入图像,附件,HTML 邮件。
  4. 可靠的强大的调试功能。
  5. 支持 SMTP 认证。
  6. 自定义邮件头。
  7. 支持 8bit、base64、binary 和 quoted-printable 编码
PHPMailer 的简单使用
这里使用最常用的 Gmail 来做介绍。请到这里查看其他常用邮箱的 SMTP 地址和端口
require_once('class.phpmailer.php');
require_once("class.smtp.php");
$mail  = new PHPMailer();
$mail->CharSet ="UTF-8";  //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置为 UTF-8
$mail->IsSMTP();  // 设定使用SMTP服务
$mail->SMTPAuth   = true;  // 启用 SMTP 验证功能
$mail->SMTPSecure = "ssl";  // SMTP 安全协议
$mail->Host       = "smtp.gmail.com";  // SMTP 服务器
$mail->Port       = 465;            // SMTP服务器的端口号
$mail->Username = "[email protected]";// SMTP服务器用户名
$mail->Password   = "your_password";    // SMTP服务器密码
$mail->SetFrom('发件人地址', '发件人名称');    // 设置发件人地址和名称
$mail->AddReplyTo("邮件回复人地址","邮件回复人名称");  // 设置邮件回复人地址和名称
$mail->Subject    = ''; // 设置邮件标题
$mail->AltBody    = "为了查看该邮件,请切换到支持 HTML 的邮件客户端";  // 可选项,向下兼容考虑
$mail->MsgHTML('');  // 设置邮件内容
$mail->AddAddress('收件人地址', "收件人名称");
//$mail->AddAttachment("images/phpmailer.gif"); // 附件
if(!$mail->Send()) {
    echo "发送失败:" . $mail->ErrorInfo;
} else {
    echo "恭喜,邮件发送成功!";
}

下载:PHPMailer,如果是 WordPress 用户,则无需下载,WordPress 已经自带 PHPMailer

来源:http://blog.wpjam.com/m/phpmailer/

PHPMailer的使用(这里以用gmail smtp发送邮件为例,当然也支持sendmail/pop3 等其他方式):
  1. 首先到http://phpmailer.worxware.com/ 下载最新版本的程序包
  2. 下载完成后,找到class.phpmailer.php 、class.smtp.php两个类放到自己的目录下!
  3. 然后新建一个php文件这里命名为:phpmail_jiucool.php
  4. phpmail_jiucool.php内容如下:

我直接将邮件发送模块写成一个函数sendMail(),大家使用的时候直接调用该函数即可,函数内容为:

<?php
function sendMail($to,$subject = "",$body = ""){
    //$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#ixyzero.com #换成@', '发件人名称');
    $mail->AddReplyTo("邮件回复地址,如admin#ixyzero.com #换成@","邮件回复人的名称");
    $mail->Subject    = $subject;
    $mail->AltBody    = "To view the message, please use an HTML compatible email viewer! - From http://ixyzero.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!恭喜,邮件发送成功!";
    }
}
来源:http://www.jiucool.com/phpmailer-php-email/

参考链接:
,

《“使用 PHPMailer 发送邮件[bak]”》 有 1 条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注