返回列表 回复 发帖

读WordPress源代码的一点收获,关于邮件发送

原文在:http://ggggqqqqihc.yo2.cn/archives/626888。在这里也发一份,希望能有点儿用。

PHP内置的mail函数的用法是极其恐怖的,至少我在看了mail函数的说明后就再也提不起兴趣来了。不仅如此,对于使用远程的SMTP服务器的用户来说,mail函数根本就不起作用。而现在的大多数SMTP服务器都需要用户名验证,PHP本身是不支持验证的,要实现这一点,必须去读SMTP协议,然后自己现实一个邮件发送程序……太恐怖了。

今天在读WordPress的源代码时,发现了两个类:PHPMailer和SMTP。PHPMailer是SMTP的上一层。WordPress 在向用户发送密码时,就是使用的PHPMailer类。PHPMailer在发送邮件时,可以使用PHP的内置函数mail(),也可以使用Qmail程序或者是sendmail程序,但对于大多数人来说,这些并不实用。幸运的是,PHPMailer也可以连接到远程的SMTP服务器(比如说网易的 smtp.163.com)来发送邮件。当然WordPress本身似乎并没有哪个地方设置WordPress发送邮件的方式。要让WordPress支持远程SMTP服务器,目前只好修改源代码了。下面就来说说如何使用这两个类来发送Email。

首先,需要把WordPress目录下的wp-includes\class-phpmailer.php和wp-includes\class- smtp.php两个文件复制到某一个目录下,这两个文件里包含了我们需要的类。然后在这个目录下建立一个测试文件,内容如下:

<?php
include ('class-phpmailer.php');
include ('class-smtp.php');

$mail=new PHPMailer();

// 设置PHPMailer使用SMTP服务器发送Email
$mail->IsSMTP();

// 设置邮件的字符编码,若不指定,则为'UTF-8'
$mail->CharSet='GB2312';

// 添加收件人地址,可以多次使用来添加多个收件人
$mail->AddAddress('xxxx@gmail.com');

// 设置邮件正文
$message='用WordPress的代码发送的Email';
$mail->Body=$message;

// 设置邮件头的From字段。
// 对于网易的SMTP服务,这部分必须和你的实际账号相同,否则会验证出错。
$mail->From='xxxxxx@163.com';

// 设置发件人名字
$mail->FromName='Wang Jinbo';

// 设置邮件标题
$mail->Subject='Test Mail';

// 设置SMTP服务器。这里使用网易的SMTP服务器。
$mail->Host='smtp.163.com';

// 设置为“需要验证”
$mail->SMTPAuth=true;

// 设置用户名和密码,即网易邮件的用户名和密码。
$mail->Username='xxxxxx';
$mail->Password='xxxxxx';

// 发送邮件。
$mail->Send();
?>

最后要说明的是,WordPress采用的开源协议是LGPL,这个协议是允许在不改变源代码的情况下使用它的代码的,并且可以用于商业用途。

[ 本帖最后由 ggggqqqqihc 于 2008-4-27 22:04 编辑 ]
2

评分次数

  • akay

  • wingfish

不错,好文!
Akay的掌上浮云:
www.akay.cn
我的游戏小站:
game.akay.cn

我可是等了很久了,一直在你期待中…

说实话首页占个位置不容你易啊


Good,and tell us funny thing!

Remember these are averages, and the

has been in a drought for some time. Old timers in

Prescott will tell you how almost every afternoon in July and August they got their almost like clockwork.

They still get quite frequent short showers but for the last few years they have not been as regular






国画-当代著名的国画大师为你显风采
网站制作-国内出色的网站策划制作公司
china massage-china massage help you to power
大众搬家-一至三吨液压车、二至五吨铲车吊链
返回列表