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,这是我们一会要引用的文件.
下边是我们用来发邮件的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<? require_once 'mail.php' ; flush (); $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.' ; ?> |
经测试发送成功,速度挺快的,别的邮箱没有测试。
以上就是php使用pear实现mail发送功能的全部代码,希望对大家的学习有所帮助。