本地没有发邮件的服务器,借助现成的SMTP服务器发送邮件是个不错的选择,这里使用到的工具是phpmailer ( Version 5.2.0),SMTP服务器就选gmail和163。

1. 使用gmail发送的脚本

include("class.phpmailer.php");
 
include("class.smtp.php"); 
 
//获取一个外部文件的内容
 
$mail             = new PHPMailer();
 
$body             = file_get_contents('contents.html');
 
$body             = eregi_replace("[\]",'',$body);
 
//设置smtp参数
 
$mail->IsSMTP();
 
$mail->SMTPAuth   = true;                 
 
$mail->SMTPKeepAlive = true;                
 
$mail->SMTPSecure = "ssl";                
 
$mail->Host       = "smtp.gmail.com";    
 
$mail->Port       = 465;                 
 
//填写你的gmail账号和密码
 
$mail->Username   = "yourname@gmail.com";  
 
$mail->Password   = "password";          
 
//设置发送方,最好不要伪造地址
 
$mail->From       = "yourname@gmail.com";
 
$mail->FromName   = "Webmaster";
 
$mail->Subject    = "This is the subject";
 
$mail->AltBody    = $body;
 
$mail->WordWrap   = 50; // set word wrap
 
$mail->MsgHTML($body);
 
//设置回复地址
 
$mail->AddReplyTo("yourname@gmail.com","Webmaster");
 
//添加附件,此处附件与脚本位于相同目录下
 
//否则填写完整路径
 
$mail->AddAttachment("attachment.jpg");           
 
$mail->AddAttachment("attachment.zip");  
 
//设置邮件接收方的邮箱和姓名
 
$mail->AddAddress("toname@gmail.com","FirstName LastName");
 
//使用HTML格式发送邮件
 
$mail->IsHTML(true);
 
//通过Send方法发送邮件
 
//根据发送结果做相应处理
 
if(!$mail->Send()) {
 
  echo "Mailer Error: " . $mail->ErrorInfo;
 
} else {
 
  echo "Message has been sent";
 
}

2.使用163发送邮件的脚本

只需要更改SMTP配置和账户密码即可,SMTP配置如下

//设置smtp参数

//注意这里不需要ssl协议

$mail->IsSMTP();

$mail->SMTPAuth   = true;                 

$mail->SMTPKeepAlive = true;                

$mail->Host       = "smtp.163.com"; 

$mail->Port       = 25; 

在本地wampserver环境下测试通过,需要开启php_openssl 扩展。

本例子脚本下载: PHP MAILER 5.2.0 EXAMPLE (GMAIL 163) 已下载 964 次

2条留言

  1. […] 如果觉得插件有一些你不需要的功能,不妨尝试一下用代码实现。WordPress发送邮件的wp_mail()函数是用phpmailer实现的,曾经写过一篇文章《借助phpmailer使用gmail和163邮箱发送邮件》,将这里将介绍的代码搬到WordPress中就搞定了。 […]

评论功能已关闭