要验证每个原子parseAddressList($address = null, $default_domain = null, $nest_groups = null, $validate = null)分析验证所给定的地址列表,如果地址有效,返回拆分后的单独的地址列表,如果发生错误,则返回错误信息。
<?php require_once "Mail/RFC822.php"; $rf822 = new Mail_RFC822; $result=$rf822->paseAddressList(''who;whoim@hotmail.com;test@test.ch''); if ( $rf822->error ){ echo "Error:$result"; }else { reset($result); for ($i=0; $i< count($result);$i++){ echo "email:$result[$i]\n"; } } ?> 8.Mail/Sendmail sendmail是unix/linux上面最常用的MTA,这个模块可以让你直接使用sendmail来发送信件
使用方法:Mail_sendmail($params)
类构造函数,$params是一个关联数组,你可以设定sendmail的参数,目前只有''sendmail_path''是有效的,用来设置sendmail的路径 send($recipients, $headers, $body) 发送信件,$recipients是你的收件人的email地址,可以是单个,也可以是用;隔开的地址列表,只要符合RFC82标准就可以。$headers是你发送信件的信头,这是一个关联数租,数组的关键字是信头的名字(如Subject),数组值则是信头的值(比如:Hello!)。处理后的信头将会是:Subject:Hello! $body 是信件的信体,包括所有的MIME编码后的部分。如果成功,返回真,否则返回一个PEAR_Error对象
<?php require_once "Mail/sendmail.php"; $sendmail = new Mail_sendmail(array(''sendmail_path=>''/usr/local/bin/sendmail'')); $header = array(''Subject''=>''Hello'',''BCC''=>''test2@hotmail.com''); $body = ''This is a test message from nightsailer.com''; $result = $sendmail->send(''test@nightsailer.com'', $header, $body); if ( PEAR::isError($result) ){ echo "<h1> 发送失败 </h1><br>原因:".$result->getMessage()."<br>"; }else { echo "<h1>恭喜!发送成功!</h1><br>"; } ?> 9.Mail/smtp 对于现在有些站点不允许使用sendmail,那么如果你的php程序希望使用发信功能,就需要能够通过使用外部的smtp服务器来完成相应的功能了。
使用方法:使用上这个模块和Mail::sendmail基本上是一样的。需要注意的是:这个模块需要使用Net::SMTP模块:Mail_smtp($params) $params的有效参数是: ''host'' smtp的服务器地址,缺省是 localhost ''port'' smtp服务端口,缺省是25 ''auth'' smtp是否需要授权验证,缺省是false ''usename'' smtp授权的用户名 ''password'' smtp授权的密码
send($recipients, $headers, $body) 发送
<?php require_once "Mail/sendmail.php"; $params=array(''host''=>''smtp.nightsailer.com'',''auth''=true, ''username''=>''night'',''password''=>''123456''); $sendmail = new Mail_sendmail($params); $header = array(''Subject''=>''Hello'',''BCC''=>''test2@hotmail.com''); $body = ''This is a test message from nightsailer.com''; $result = $sendmail->send(''test@nightsailer.com'', $header, $body); if ( PEAR::isError($result) ){ echo "<h1> 发送失败 </h1><br>原因:".$result->getMessage()."<br>"; }else { echo "<h1>恭喜!发送成功!</h1><br>"; } ?> 10.Schedule/At 这个模块提供了unix上面的at程序的接口
add($cmd, $timespec, $queue = false, $mail = false ) 追加一个at命令
这个方法将为at程序生成一个定制的作业: $cmd 是你要运行的程序或脚本 $timespec 是作业开始执行的时间,格式与at要求的相同 $queue 可选参数,指明作业的队列名 $ma |