php邮件发送方法解析,phpmailer发送邮件示例

发布时间:2019-09-26编辑:脚本学堂
本文介绍了php发邮件的两种方法,使用普通smtp协议发邮件,也可以使用phpmailer类发邮件,需要的朋友参考下。

php发送邮件,在w3c中对于php的讲解中关于email的部分内容较少,其是通过自身的email()函数来实现邮件发送,实现起来很简单。

专题推荐:php怎么发邮件?

例子:
 

复制代码 代码示例:
$to = "xxxxx@163.com";
$subject = "Test";
$message = "This is a test mail!";
ini_set('SMTP','smtp.163.com');
ini_set('smtp_port',25);
ini_set('sendmail_from',"yyyyyyy@163.com"
mail($to,$subject,$message);

也可以将:
 

复制代码 代码示例:
ini_set('SMTP','smtp.163.com');
ini_set('smtp_port',25);
ini_set('sendmail_from',yyyyyyy@163.com);

通过配置php.ini.但这样运行之后会出现如下错误:SMTP server response:553 authentication is required,smtp2,DNGowKD7v5BTDo9NnplVBA--.1171S21301220947.错误的原因是说SMTP服务器需要验证信息,百度了一下发现很多人出现了类似的问题,究其原因是因为mail()函数使用需要一台无需SMTP验证就可以发信的邮件服务器。这种方式对服务器本身做了一些限制,不太适合开发。

对于PHP发送邮件实现,普遍使用的是通过第三方的框架PHPMailer来实现。PHPMailer是一个开源的PHP发送邮件的框架,由一个外国人编写。在PHP邮件发送上非常好用,无需SMTP服务器也无需在PHP.ini文件里面配置信息。

PHPMailer可以到http://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list下载。

本站下载地址:

PHPMailer邮件发送类V5.1下载地址

解压之后,将class.phpmailer.php,class.pop3.php,class.smtp.php.放到当前工程路径下面,这里通过封装一个方法来实现发送邮件的功能。

代码:
 

复制代码 代码示例:
function sendmail($to,$subject = "",$body = ""){
//$to 表示收件人地址 $subject 表示邮件标题 $body表示邮件正文
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.163.com";  // SMTP 服务器
$mail->Port   = 465;   // SMTP服务器的端口号
$mail->Username   = "yyyyyyy";  // SMTP服务器用户名
$mail->Password   = "123456";// SMTP服务器密码
$mail->SetFrom('yyyyyyy@163.com', 'sinllychen');
$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!恭喜,邮件发送成功!";
}
}

在正文中使用:
 

sendmail($to,$subject,$content);

即可成功发送邮件了。