PHPMailer是别人封装好的一个发送邮件的库,用起来很方便。其支持mail、sendmail和smtp的方式可以到https://code.google.com/a/apache-extras.org/p/phpmailer/downloads/list去下载最新版本的。下面通过gmail smtp发送邮件为例来说明smtp使用方法。
代码如下 |
复制代码 |
function sendMail($subject, $body, $to, $ccs = array()) {
require_once './class.phpmailer.php';
$mail = new PHPMailer();
//设定邮件编码,默认ISO-8859-1,也可以直接去源代码中修改
$mail->CharSet = 'UTF-8';
// 使用smtp的方式发送
$mail->IsSMTP();
//smtp服务器需要认证
$mail->SMTPAuth = TRUE;
//安全协议 gmail 是采用ssl的
$mail->SMTPSecure = "ssl";
//smtp服务器
$mail->Host = 'smtp.gmail.com';
//smtp服务器端口,普通是25
$mail->Port = 465;
//smtp 认证用户名和密码
$mail->Username = '[email protected]';
$mail->Password = "yourpassword";
//发件人地址和名字,名字可以省略
$mail->SetFrom('[email protected]', 'display name');
// 邮件标题
$mail->Subject = $subject;
// 邮件内容,支持HTML格式
$mail->MsgHTML($body);
// 收件人地址
$mail->AddAddress($to);
// 抄送人
foreach ($ccs as $cc) {
$mail->AddCC($cc);
}
if(!$mail->Send()) {
echo "error info:" . $mail->ErrorInfo;
}
}
|
上面是核心代码,下面我们综合一下实例。
按如下示例编写代码即可实现php在线发送邮件.
一:前台表单
代码如下 |
复制代码 |
phpmailer Unit Test
请你输入收信的邮箱地址:
|
二:后台PHP程序
代码如下 |
复制代码 |
require("class.phpmailer.php"); //下载的文件必须放在该文件所在目录
$mail = new PHPMailer(); //建立邮件发送类
$address = $_POST['address'];
$mail->IsSMTP(); // 使用SMTP方式发送
$mail->Host = "mail.xxxxx.com"; // 您的企业邮局域名
$mail->SMTPAuth = true; // 启用SMTP验证功能
$mail->Username = "[email protected]"; // 邮局用户名(请填写完整的email地址)
$mail->Password = "******"; // 邮局密码
$mail->From = "[email protected]"; //邮件发送者email地址
$mail->FromName = "您的名称";
$mail->AddAddress("$address", "");//收件人地址,可以替换成任何想要接收邮件的email信箱,格式是AddAddress("收件人email","收件人姓名")
//$mail->AddReplyTo("", "");
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // 添加附件
//$mail->IsHTML(true); // set email format to HTML //是否使用HTML格式
$mail->Subject = "PHPMailer测试邮件"; //邮件标题
$mail->Body = "Hello,这是测试邮件"; //邮件内容
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //附加信息,可以省略
if(!$mail->Send())
{
echo "邮件发送失败. ";
echo "错误原因: " . $mail->ErrorInfo;
exit;
}
echo "邮件发送成功";
?>
|