这两天一直在用php编写发送邮件的程序,开始用的是php自带的mail方法,但后来发现这个方法有个较大的bug,给一些企业邮箱或者msn等邮箱发送邮件时显示发送成功,但实际上并没有发送,也就是说对方根本无法收到邮件,当然,如果是163,126,qq的邮箱还是可以的。解决这个问题用到的方法就是使用phpMailer类了
下面具体介绍怎么用:
1、 首先在项目里导入两个文件,文件下载地址:http://download.csdn.net/detail/payton_liu/3852674
下面是一个编写好的发送邮件的方法(也是在网上找到,只是做了些修改,很实用,借鉴一下):
<?php
include("class.phpmailer.php");
function mailsent($to,$subject,$body){
$mail = new PHPMailer();
$mail->IsSMTP(); // 启用SMTP
$mail->Host = "你的SMTP服务器名"; //SMTP服务器
$mail->SMTPAuth = true; //开启SMTP认证
$mail->Username = "你的SMTP邮箱用户名"; // SMTP用户名
$mail->Password = "邮箱密码"; // SMTP密码
$mail->From = "from@example.com"; //发件人地址
$mail->FromName = "payton"; //发件人
$mail->AddAddress($to); //添加收件人
$mail->AddAddress("b@dragonapparels.com"); //收件人可以多个
//$mail->AddReplyTo("c@dragonapparels.com", "Information"); //回复地址
$mail->WordWrap = 50; //设置每行字符长度
/** 附件设置
$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // 添加附件,并指定名称
*/
$mail->IsHTML(true); // 是否HTML格式邮件
$mail->CharSet = "utf-8"; // 这里指定字符集!
$mail->Encoding = "base64";
$mail->Subject =$subject; //邮件主题
$mail->Body =$body; //邮件内容
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //邮件正文不支持HTML的备用显示
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
}
?>
2、定义邮件信息并调用mailsent方法
$to="收件人地址";
$subject = "邮件标题";
$body = "邮件内容";
调用上面的方法 mailsent($to,$subject,$body);