PHP发邮件可以用其自带mail()函数,但是这个函数很不好使,需要配置邮件服务器,并且不支持smtp验证,在很多场合无法正常的工作. 找了个代码发邮件,但总是出错,我在这里用PEAR的Mail类,使用smtp发邮件.
首先安装,我推陈用最新版的PHP5,因为我用PHP4出现了很多问题,大多是因为那些封装好的类版本太高,与PHP4不兼容的原故吧.
安装方法:
1.在PHP目录中双击go-pear.bat。 2.按照提示输入一些设置信息,主要是问直接访问外网,还是用代理,若无代理服务器则直接回车,我是直接按回车. 3.然后会提示一些包和PHP绑定,选择Y 。 4.然后安装基本包和提示安装成功,就这么简单。 5.打开windows目录下的PHP.ini文件,然后查找到如下的地方: ; UNIX: "/path1:/path2" ;include_path = ".:/PHP/includes" ; ; Windows: "\path1;\path2" ;include_path = ".;c:\PHP\includes"把最后一行的注释去掉,然后把后面路径改成你的PEAR路径,例如: include_path = ".;c:\PHP\pear\" 保存PHP.INI,然后重新启动APACHE即可。
现在PEAR已经安好了,我们要用到的类放在PHP目录下的pear文件夹下,但是现在没有多少可用的类,我们要去网上下载并安装.
在你的PHP根目录中可以找到PEAR.bat文件(执行上边的安装才会有这个东西),这是管理pear的命令,在CMD中使用,要设置环境变量PATH,或双击生成的EV_XXX.REG文件。它的部分命令功能如下:
1、安裝:
从网络安装一个pear类库: pear install packagename
下载 packages 但不安裝: pear download packagename pear download-all
安裝已下载的package: pear install filename.tgz
2、列表:
目前pear网站上所有可取得pear类库列表: pear remote-list
列出已安裝package: pear list
列出可以升級的package: pear list-upgrades
3、更新(升級):
更新package: pear upgrade packagename pear upgrade-all
4、移除:
刪除已安裝的package: pear uninstall packagename
我们从cmd进入PHP目录,执行pear install mail 如果安装过程提示某些库没有安装,则继续安装这些库如图:
出来一些信息,会提示安装成功,这时pear目录下多出来一个mail目录,同时有一个mail.PHP,这是我们一会要引用的文件. 下边是我们用来发邮件的代码:
$conf['mail'] = array(
'host' => 'mail.nenu.edu.cn',//smtp服务器地址,可以用ip地址或者域名
'auth' => true,//true表示smtp服务器需要验证,false代码不需要
'username' => 'guanhf844',//用户名
'password' => '你的密码' //密码
);
$headers['From'] = 'guanhf844@nenu.edu.cn'; //发信地址
$headers['To'] = 'chf007server@163.com'; //收信地址
$headers['Subject'] = 'test mail send by PHP'; //邮件标题
$mail_object = &Mail::factory('smtp',$conf['mail']);
$body = '<<< MSG
hello world!!!
MSG';
//邮件正文
$mail_res = $mail_object->send($headers['To'],$headers,$body); //发送
if( PEAR::isError($mail_res) ){ //检测错误
die($mail_res->getMessage());
}
echo 'Send finished.';
?>
经测试发送成功,速度挺快的,别的邮箱没有测试。
原文链接:https://www.f2er.com/php/19967.html