php功能-php发送电子邮件

2013.01.4 No Comments

*.这里推荐使用 PHPMailer,PHPMailer是一个用于发送电子邮件的PHP函数包

*.在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址

*.支持多种邮件编码包括:8bit,base64,binary和quoted-printable

*.支持SMTP验证

*.支持冗余SMTP服务器

*.支持带附件的邮件和Html格式的邮件

*.自定义邮件头

*.支持在邮件中嵌入图片

*.调试灵活

*.经测试兼容的SMTP服务器包括:Sendmail,qmail,Postfix,Imail,Exchange等

*.可运行在任何平台之上

PHP内部的mail函数

mail函数

php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能,所以使用mail函数往往无法成功发送email.

自己如果熟悉SMTP协议,结合socket功能就可以编写高效稳定的邮件发送程序,但对一般用户来说太困难.好在互联网上已经有很多别人编写好的邮件发送模块,我们只需要下载后简单调用即可,十分方便.

第一步:需要下载PHPMailer文件包(地址: http://code.google.com/a/apache-extras.org/p/phpmailer/)

第二步:确认你的服务器系统已经支持socket 如下图,通过phpinfo();查看是否支持sockets

如果没有这一项就请注意: socket 是属于PHP扩展部分,编译时必须给定一个用于./configure --enable-sockets 的配置选项。

第三步:把文件解压到你的web服务器目录下,调用类就可以了,说明:首先包含 class.phpmailer.php,然后创建对象,设置参数,调用成员函数。具体请见下面的示例代码:

[php]

// 后台php程序
public function smtp_mail( $sendto_email, $subject, $body='空值', $extra_hdrs, $user_name){
require("phpmailer/class.phpmailer.php");    //下载的文件必须放在该文件所在目录
$mail = new PHPMailer();    //建立邮件发送类
$mail->IsSMTP();                  // 使用SMTP方式发送
$mail->Host = "smtp.163.com";   // 您的企业邮局域名
$mail->SMTPAuth = true;           // 启用SMTP验证功能
$mail->Username = "test123";     // SMTP username  注意:普通邮件认证不需要加 @域名
$mail->Password = "password"; // SMTP password
$mail->From = "test123@163.com";      // 发件人邮箱
$mail->FromName =  "Senduser";  // 发件人

$mail->CharSet = "UTF-8";   // 这里指定字符集!
$mail->Encoding = "base64";
$mail->AddAddress($sendto_email,"收件人姓名");  // 收件人邮箱和姓名
//         $mail->AddReplyTo("","");
//         $mail->WordWrap = 50; // set word wrap 换行字数
//         $mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件

$mail->IsHTML(true);  // 是否使用HTML格式
//          邮件主题
$mail->Subject = $subject;
//          邮件内容
$mail->Body =$body;
$mail->AltBody ="text/html";   //附加信息,可以省略
if(!$mail->Send())
{
echo "邮件发送有误 <p>";
echo "邮件错误信息: " . $mail->ErrorInfo;
exit;
}
else {
echo "$user_name 邮件发送成功!<br />";
}
}
public    function  send_email($youmail,$title,$body,$aa,$bb){
echo  '验证';
//           参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名)
$time = date('Y年m月d日',time());
echo  $time;
$this-> smtp_mail("接收邮箱", '邮件主题', "body内容", "AA", "bb");

}

[/php]

Related Posts:

评论已关闭。