|
|
最近研究uchome,使用在线发邮件的功能,但是测试了"通过 PHP 函数的 sendmail 发送(推荐此方式)"怎么都没用,因为本人现在用的是iis+php环境,怎么调试都没有用,经过研究之后搞定,分享一下教大家在自己服务器上配置sendmail。很多php的网站例如Discuz的论坛和各种phpCMS的网站都用到。3 N4 a: O& g. @8 _ K+ l* J
首先你需要先到从http://glob.com.au/sendmail/下载sendmail.zip文件,点此可以直接下载噢,然后把它解压到如D:\php\sendmail\目录下。
# x0 b8 i/ H7 g+ W然后打开php.ini文件,找到下面这段代码
; j7 k$ v2 m. ?3 r/ E- [mail function] + W: k# ]4 M$ L* V8 f
- ; For Win32 only. % ?( |, r8 U0 ^) ^0 F
- SMTP = localhost
( ?1 k4 V$ n$ B' y# z/ J. v - smtp_port = 25
7 w: Y- \( F, e( x( s& f' o9 ` |9 m - ; For Win32 only. 9 w1 R+ W( D' M+ A& P
- ;sendmail_from = me@example.com
) o( r0 t9 C$ n - ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). % c4 I. W5 q( x
- ; sendmail_path = ""
% W: @% m/ o$ Z/ i - ; Force the addition of the specified parameters to be passed as extra parameters
8 l0 B" h* W t3 L - ; to the sendmail binary. These parameters will always replace the value of
# s/ e; X' x S - ; the 5th parameter to mail(), even in safe mode.
- w' j6 R' V4 t7 O: Z - ;mail.force_extra_parameters =
复制代码 默认情况下是以本机做为邮件服务器,这里我们需要借用sendmail来发送邮件,用sendmail来配置如用qq、163的邮箱来发送(一般都是以这种方式)所以我们需要把所有的选项都注销,即把SMTP = localhost和smtp_port = 25前面加上";"然后把sendmai_path=""前面的";"删掉,改为sendmai_path="d:\php\sendmail\sendmail.exe -t",改完后的即是
& j" ^7 U+ ?/ B% o& c. q- [mail function]
4 x w3 u# `& K+ S3 v - ; For Win32 only. 0 ?- {! v! Y( s0 Y* u7 x- @
- ;SMTP = localhost * Y0 i5 g( T: o/ U; O1 B4 G4 l' c4 q
- ;smtp_port = 25
- s7 T" @0 v6 [ v4 L5 B/ ]# {0 O - ; For Win32 only.
9 |9 R' x) w1 |: Q5 _5 ^" g- i - ;sendmail_from = me@example.com
/ V5 p$ B5 @' c1 E( e0 Q8 X0 U! B+ V - ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
5 U; R/ V, R1 Y) u - sendmail_path = "d:\php\sendmail\sendmail.exe -t"
2 Q. N$ P+ I& C" @ - ; Force the addition of the specified parameters to be passed as extra parameters
% |1 y4 [% Y0 `1 n+ ^- S2 _" R - ; to the sendmail binary. These parameters will always replace the value of 7 h% o, b! N2 Z" N* Q; W
- ; the 5th parameter to mail(), even in safe mode.
4 }( s2 P* u/ p4 F5 K6 j1 { - ;mail.force_extra_parameters =
复制代码
0 |' Z6 ] ^3 ?8 o5 ]' L注意以上只需要开启sendmail_path即可,然后保存 - T2 [# G! W p8 L6 Q
- M. v5 d8 C" f6 R! M. u/ P
接着修改sendmail目录下的sendmail.ini文件,主要填的内容有以下几项
$ w# }4 q. u: V2 D- smtp_server=smtp服务器地址(如 smtp.ym.163.com) - H& n: ^$ E' Z: x- N* I' B
- auth_username=邮箱登录名(如 info@xxxx.com) 8 o3 _4 L0 \# l9 y; i0 o% P
- auth_password=邮箱密码(如 xxxxxx) # P9 G4 A. K" s8 c ^
- force_sender=发件人地址全写(如 info@xxxx.com)
复制代码 另外还有一项
! Q/ T$ J; Y. b# m! C; Y, d% M- ; auto = use SSL for port 465, otherwise try to use TLS
复制代码
2 u V( ^/ d# O; w. W: }2 ?0 k把前面的";"删除,即开启SSL安全登录选项即可
% n4 q1 `+ _6 T6 v& A$ V" x/ Q, b9 s/ B% w9 [
以上四项正确填写修改完成后保存,然后重启IIS即可正常使用。
. J4 d" v6 e: ]3 E: r
- O! k) Y: O" v8 T如果不能发送邮件,检查下端口是不是被屏蔽了,杀毒软件是不是设置了禁止发送邮件等 , d' [& o$ T* q% J& P
* |1 }* X; l( c. b5 w8 u% z |
|