竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier


2012月/120

phpmailer邮件类下载

发布在 邵珠庆


PHPMailer是一个用于发送电子邮件的PHP函数包。它提供的功能包括:

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

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

*.支持SMTP验证

*.支持冗余SMTP服务器

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

*.自定义邮件头

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

*.调试灵活

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

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

调用方法:

01.require("class.phpmailer.php");
02. 
03.$mail new PHPMailer();
04. 
05.$mail->IsSMTP();                 // 启用SMTP
       $mail->SMTPSecure = "tls";      //如果是Gmail请修改加密方式(重要)
06.$mail->Host = "smtp1.example.com";           //SMTP服务器
07.$mail->SMTPAuth = true;                  //开启SMTP认证
08.$mail->Username = "name@example.com";            // SMTP用户名
09.$mail->Password = "password";                // SMTP密码
10. 
11.$mail->From = "from@example.com";            //发件人地址
12.$mail->FromName = "Mailer";              //发件人
13.$mail->AddAddress("josh@example.net""Josh Adams"); //添加收件人
14.$mail->AddAddress("ellen@example.com");
15.$mail->AddReplyTo("info@example.com""Information");    //回复地址
16.$mail->WordWrap = 50;                    //设置每行字符长度
17./** 附件设置
18.$mail->AddAttachment("/var/tmp/file.tar.gz");        // 添加附件
19.$mail->AddAttachment("/tmp/image.jpg", "new.jpg");   // 添加附件,并指定名称
20.*/
21.$mail->IsHTML(true);                 // 是否HTML格式邮件
22. 
23.$mail->Subject = "Here is the subject";          //邮件主题
24.$mail->Body    = "This is the HTML message body <b>in bold!</b>";        //邮件内容
25.$mail->AltBody = "This is the body in plain text for non-HTML mail clients"//邮件正文不支持HTML的备用显示
26. 
27.if(!$mail->Send())
28.{
29.echo "Message could not be sent. <p>";
30.echo "Mailer Error: " $mail->ErrorInfo;
31.exit;
32.}
33. 
34.echo "Message has been sent";

关于邮件乱码的解决办法:

邮件的中文会出现乱码主要是编码没有设置好。

设置方法如下:

1.$mail->IsHTML(true);                 // 是否HTML格式邮件
2.$mail->CharSet = "utf-8";                // 这里指定字符集!
3.$mail->Encoding = "base64";

但是请注意,这并不能完全保证你收到的邮件是正确的编码。在发送html邮件时,我们需要发送一个完整的html文档。

如:

<html><head>

<meta http-equiv="Content-Language" content="zh-cn">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>

<body>含中文的内容</body>

</html> 

 

附件下载:

PHPMailer.zip 114.94KB

要注意的内容: 

  1. 邮件的字符集设置, $mail->CharSet = "GB2312";            // 这里指定字符集!在这里我只指定为GB2312因为这样Outlook能正常显示邮件主题,我尝试过设为utf-8但在Outlook下显示乱码。 

  2. 如果是发送html格式的邮件,那么记得也指定<meta ... charset=GB2312"> 

  3. 如果你想用它来群发邮件的话,记得修改包含文件函数,如: 

  require("phpmailer/class.phpmailer.php"); 

  改为 

  require_once("phpmailer/class.phpmailer.php"); 

  否则的话会产生类的重定义。