php实现自动发送邮件神器phpmailer

如果想使用php实现邮件发送功能,phpmailer的确是一个不错的选择。

phpmailer可以连接现有邮箱,类似gmail、qq邮箱、163邮箱等,并支持附件的发送。

最新版的phpmailer可以在这里下载

使用起来也很简单,使用163邮箱的php代码如下

<?php

//接收邮件地址
$to = "";
//邮件标题
$subject = "";
//邮件内容
$body = "";

//$to 表示收件人地址 $subject 表示邮件标题 $body表示邮件正文 
//error_reporting(E_ALL); 
//error_reporting(E_STRICT); 
date_default_timezone_set("Asia/Shanghai");//设定时区东八区 
require_once('phpmailer/class.phpmailer.php'); 
include("phpmailer/class.smtp.php");

//new一个PHPMailer对象出来 
$mail = new PHPMailer(); 

//对邮件内容进行必要的过滤 
$body = eregi_replace("[\]",'',$body);

//设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码 
$mail->CharSet ="UTF-8";

// 设定使用SMTP服务
$mail->IsSMTP();

// 启用SMTP调试功能 
$mail->SMTPDebug = 1;
// 1 = errors and messages 
// 2 = messages only

//启用 SMTP 验证功能
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl"; // 安全协议 
$mail->Host = "smtp.163.com"; // SMTP 服务器 
$mail->Port = 465; // SMTP服务器的端口号 
$mail->Username = "xxx@163.com"; // SMTP服务器用户名 
$mail->Password = "xxx"; // SMTP服务器密码 
$mail->SetFrom('xxx@163.com', '发件人名称'); 
$mail->AddReplyTo("xxx@163.com","发件人名称"); 
$mail->Subject = $subject; 

$mail->MsgHTML($body); 
$address = $to; 
$mail->AddAddress($address, $team); 

//增加附件
$mail->AddAttachment("images/phpmailer.gif");
$mail->AddAttachment("images/phpmailer_mini.gif");

//检查邮件是否发送成功
//也是发送执行函数
if(!$mail->Send()) 
{ 
$message = "邮件发送失败!" . $mail->ErrorInfo; 
$tag = "0";
} 
else 
{ 
$message = "邮件发送成功!请检查邮箱(".$email.")"; 
$tag = "1";
} 
if ($tag == "1")
{
        //带消息跳转
    header('location:xxx.php?message='.$message);
}
else
{
        //带消息跳转
    header('location:xxx.php?message='.$message);
}

?>

上述连接163邮箱使用了SSL协议端口,SMTP服务器地址,不同邮箱不一样,自己更改一下就可以了。

如果使用非SSL协议端口,自己按照邮箱里说明修改一下。

附件内容不超过邮箱限制就可以,强调Send()函数必须有哈,没有不发送的。

最后,附上自己用的一个phpmailer版本

PHPMailer-master

发表评论

%d 博主赞过: