在PHP5中使用PHPMailer发送邮件

时间:2009-6-17     作者:smarteng     分类: PHP相关


在使用PHP编写WEB程序时需要将一个确认信息用邮件发送给用户,在网上找了一下。找到了一个不错的开源程序,今天的主角:PHPMailer;以下我将以一个使用PHPMailer发送一个HTML邮件为例演示。

用PHPMailer发邮件[break]
PHPMailer,是一个为了实现PHP平台上发送电子邮件(Email)的优秀国外PHP类库。它最主要的两个特点:发送HTML内容格式的Email和发送带附件的Email。PHPMailer基本上能够实现所有邮箱本身所包含的邮件发送功能,包括多发件人,抄送(CC),暗送(BCC)和SMTP发送等功能。简单来说,PHPMailer就是一个高效PHP平台发送Email的类库。众所周知,PHP自带一个mail()函数能够实现邮件发送的基本功能。但PHPMailer能够通过简单的操作,实现HTML格式邮件发送,附件发送。不仅如此,PHPMailer还能够通过你自己的SNTP服务器处理邮件,并能够避免在Unix平台上mail()方法产生的诸多问题。

 内附实例包括使用以下SMTP服务的邮箱:126.com,163.com,foxmail

说明
目前测试已通过的国内邮箱:126,163,新浪邮箱,foxmail
目前测试尚未通过的邮箱:gmail

初次使用
发送带附件的邮件
发送HTML格式的邮件
变更日志
2008-9-30 由代码吾爱Saturn汉化并提供几个简单示例

用法示例

<?php

// 使用PHPMailer发送邮件实例,126邮箱
//Script by Code52.net
//代码吾爱,Be a happy coder.

include("class.phpmailer.php");
include("class.smtp.php"); // 可选

$mail             = new PHPMailer();

$body             = $mail->getFile('contents.html');//邮件正文内容,提取html文件为其内容
$body             = eregi_replace("[\]",'',$body);

$mail->IsSMTP();
$mail->SMTPAuth   = true;                  // 必填,SMTP服务器是否需要验证,true为需要,false为不需要
$mail->Host       = "smtp.126.com";      //必填,设置SMTP服务器
//$mail->Port       = 25;                   // 设置端口

$mail->Username   = "username@126.com";  // 必填,开通SMTP服务的邮箱;任意一个126邮箱均可
$mail->Password   = "password";            //必填, 以上邮箱对应的密码

$mail->From       = "username@126.com";    //必填,发件人Email
$mail->FromName   = "Webmaster";              //必填,发件人昵称或姓名
$mail->Subject    = "This is the subject";       //必填,邮件标题(主题)
$mail->AltBody    = "This is the body when user views in plain text format"; //可选,纯文本形势下用户看到的内容
$mail->WordWrap   = 50; // 自动换行的字数

$mail->MsgHTML($body);

$mail->AddReplyTo("username@126.com","Webmaster");//回复邮箱地址


$mail->AddAttachment("/path/to/file.zip");             // 添加附件
$mail->AddAttachment("/path/to/image.jpg", "new.jpg"); // 添加附件

$mail->AddAddress("Sendto@gmail.com","First Last");//参数一:收信人的邮箱地址,可添加多个。参数二:收件人称呼

$mail->IsHTML(true); // 是否以HTML形式发送,如果不是,请删除此行

if(!$mail->Send()) {
  echo "Mailer错误: " . $mail->ErrorInfo;
} else {
  echo "邮件发送成功";
}

?>