|
|
最近研究uchome,使用在线发邮件的功能,但是测试了"通过 PHP 函数的 sendmail 发送(推荐此方式)"怎么都没用,因为本人现在用的是iis+php环境,怎么调试都没有用,经过研究之后搞定,分享一下教大家在自己服务器上配置sendmail。很多php的网站例如Discuz的论坛和各种phpCMS的网站都用到。
Y, v5 N* Y8 a( H) n首先你需要先到从http://glob.com.au/sendmail/下载sendmail.zip文件,点此可以直接下载噢,然后把它解压到如D:\php\sendmail\目录下。( P0 Q' z9 r* R
然后打开php.ini文件,找到下面这段代码
4 C: `% E; ]6 ]$ j' p- [mail function]
9 Z7 v5 j8 O2 X - ; For Win32 only. . W8 Y; G7 i- S" Z" w' u. K7 d' y' A* G9 y
- SMTP = localhost
3 R/ p4 |3 e% N# Y5 e+ d# } - smtp_port = 25
$ \5 t& t* U0 E4 r# g1 x - ; For Win32 only. ! e! L7 K. R; Q: s3 O2 }6 K0 e
- ;sendmail_from = me@example.com 9 o2 G8 j( H0 L, V# L' s: q
- ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). q: j$ X' j! g
- ; sendmail_path = "" 8 A- m3 P1 T7 G$ W
- ; Force the addition of the specified parameters to be passed as extra parameters 0 D* @9 w# G- W3 b3 N! r
- ; to the sendmail binary. These parameters will always replace the value of
2 @2 Z* i% J+ R2 a! s' U - ; the 5th parameter to mail(), even in safe mode. ( \/ `8 l5 f# \; [
- ;mail.force_extra_parameters =
复制代码 默认情况下是以本机做为邮件服务器,这里我们需要借用sendmail来发送邮件,用sendmail来配置如用qq、163的邮箱来发送(一般都是以这种方式)所以我们需要把所有的选项都注销,即把SMTP = localhost和smtp_port = 25前面加上";"然后把sendmai_path=""前面的";"删掉,改为sendmai_path="d:\php\sendmail\sendmail.exe -t",改完后的即是
2 k5 L0 a. B1 @: |7 ?- [mail function]
$ X6 D4 C3 I2 y" H+ A7 Y2 s - ; For Win32 only. / M- {% R- C) X$ q- q
- ;SMTP = localhost ( v- ^/ d& T+ ?6 |
- ;smtp_port = 25 % e. V2 f9 u- s+ f2 V- ?. G7 ^
- ; For Win32 only.
- T6 ~0 l* K$ m4 m# P0 m7 [ - ;sendmail_from = me@example.com / p+ W P5 y( Q% q8 \; R
- ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 4 D7 Q8 b0 b) `, w; ]+ s) u- N6 D
- sendmail_path = "d:\php\sendmail\sendmail.exe -t"
! U2 w; C! n; ~ - ; Force the addition of the specified parameters to be passed as extra parameters
& t+ l. {9 |. v - ; to the sendmail binary. These parameters will always replace the value of
' M) ^% C6 i9 D) C: P% ^ - ; the 5th parameter to mail(), even in safe mode. " X1 h4 }5 a( N4 y( c: V
- ;mail.force_extra_parameters =
复制代码
/ ^$ y0 t# M' C+ l8 P( _6 c, C注意以上只需要开启sendmail_path即可,然后保存
3 l. y+ p0 A1 g* l! ]7 O
8 {$ g$ e* ?5 L ?2 j接着修改sendmail目录下的sendmail.ini文件,主要填的内容有以下几项
/ i4 {5 T8 A' l6 E+ s* W7 o- smtp_server=smtp服务器地址(如 smtp.ym.163.com)
2 p& J# _* J. Q9 @! r6 } - auth_username=邮箱登录名(如 info@xxxx.com)
) p0 m" z( H- t. L% c - auth_password=邮箱密码(如 xxxxxx) & A* V6 w: D5 k- B3 l1 ^
- force_sender=发件人地址全写(如 info@xxxx.com)
复制代码 另外还有一项
: T' q; g# D7 s U- ; auto = use SSL for port 465, otherwise try to use TLS
复制代码 2 @: @& q) K1 n# e
把前面的";"删除,即开启SSL安全登录选项即可
% n- ^9 _' R. m# y3 y) p7 `) G+ L$ c; V7 [4 m! A- k
以上四项正确填写修改完成后保存,然后重启IIS即可正常使用。 8 q- R: T, m( e* k# V. L. e+ d
1 n( ^. ], B3 h1 v4 N$ K+ O; Q9 g
如果不能发送邮件,检查下端口是不是被屏蔽了,杀毒软件是不是设置了禁止发送邮件等 $ S# d: h) _( }0 [8 P, y
0 R/ J. K" m! k$ y" E |
|