最近看到不少关于用smtp发邮件的文章,其实除了自己写以外,php的官方组件库还提供了一个netmail组件可以发送邮件。下面简单介绍使用的方法
1 下载NetMail,SMTP,SASL,SOCKET等几个pear组件,当然还包括pear.php这个模块。注意最新版本的文件里面最后面缺少 “?>“ 要自己补上。
在你的webapp目录下建立一个inc/pear目录,一般不要使用系统的pear库,因为一可能会有版本问题,二pear使用时需要设置require的路径,而每一个程序可能都有差别。
把所有的包放在inc/pear里面后,修改每一个文件里面requirel_once的地方,在文件名前面加上你自己的路径,相对位置从你要执行发送程序的目录开始,大致如下
require_once(PEAR_PATH.’Mail.php’);
里面的PEAR_PATH可以控制不同目录下的文件调用时根据自己的当前所在路径来具体设置
2 发送程序
设置smtp的访问用户名,密码
$params = array(‘host’ => ‘localhost’,
‘port’ => ’25’,
‘username’ =>
‘danny@xxx.gov.cn’
,
‘password’ => ‘danny’);
//$to = $test_mail;
$recipients = $to; 接收人,可以是一个数组来存放多个地址
$headers[‘From’] = $email;
$headers[‘To’] = $to;
$headers[‘Subject’] = $subject;
$body = $message;
//选择smtp的发送方式,当然还支持mail()和sendmail
$mail_object = &Mail::factory(‘smtp’, $params);
if (PEAR::isError($e = $mail_object->send($recipients, $headers, $body))) {
die($e->getMessage() . “/n”);
}