|
|
最近研究uchome,使用在线发邮件的功能,但是测试了"通过 PHP 函数的 sendmail 发送(推荐此方式)"怎么都没用,因为本人现在用的是iis+php环境,怎么调试都没有用,经过研究之后搞定,分享一下教大家在自己服务器上配置sendmail。很多php的网站例如Discuz的论坛和各种phpCMS的网站都用到。
8 e5 U% m2 x& x m: A0 n" d首先你需要先到从http://glob.com.au/sendmail/下载sendmail.zip文件,点此可以直接下载噢,然后把它解压到如D:\php\sendmail\目录下。( X% V# |8 k. ?) b
然后打开php.ini文件,找到下面这段代码
# K, d4 r: d; d( }8 p& Q- [mail function]
/ D& F' d/ g! p! T - ; For Win32 only.
. w0 r! r$ }, U- z - SMTP = localhost $ G3 a* q9 g' a& M" C4 T
- smtp_port = 25
2 ?, E i; z* j! l! D - ; For Win32 only.
/ `+ F# j7 |4 j - ;sendmail_from = me@example.com
0 g- a. A; n$ G; ?- W; P2 O0 j2 b - ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ! a2 b q# L# T: f3 H
- ; sendmail_path = "" 2 f8 T; o: M5 J/ D
- ; Force the addition of the specified parameters to be passed as extra parameters
+ r0 l/ q7 V$ c( g! S5 x W) B' n - ; to the sendmail binary. These parameters will always replace the value of ! r' y. t+ ^, X" J: g0 A
- ; the 5th parameter to mail(), even in safe mode. # F' I8 D# `; A" f; q- p" c
- ;mail.force_extra_parameters =
复制代码 默认情况下是以本机做为邮件服务器,这里我们需要借用sendmail来发送邮件,用sendmail来配置如用qq、163的邮箱来发送(一般都是以这种方式)所以我们需要把所有的选项都注销,即把SMTP = localhost和smtp_port = 25前面加上";"然后把sendmai_path=""前面的";"删掉,改为sendmai_path="d:\php\sendmail\sendmail.exe -t",改完后的即是 " B; o) o9 ~( Y4 d4 B' ~5 G
- [mail function] " U! r- [! C; ~5 c: q9 s/ G
- ; For Win32 only. 9 k, u1 l' [' Q& ]0 P
- ;SMTP = localhost + B! Y7 J+ a" x5 z; v
- ;smtp_port = 25
; o( `; i' t: N - ; For Win32 only. + a$ C) C' V& R& f/ b% o
- ;sendmail_from = me@example.com
4 L$ j8 g5 {! d: X+ _) R6 X - ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
4 l5 I" H9 k0 F - sendmail_path = "d:\php\sendmail\sendmail.exe -t"
: w4 W5 _2 x5 h) F/ @ - ; Force the addition of the specified parameters to be passed as extra parameters
8 J1 z% v8 W' p' b" V+ q+ o: h - ; to the sendmail binary. These parameters will always replace the value of
( \' L, u# \# p- } - ; the 5th parameter to mail(), even in safe mode.
. M e# u ?3 z8 L1 B, P7 O - ;mail.force_extra_parameters =
复制代码 9 V. p0 J7 Z% n
注意以上只需要开启sendmail_path即可,然后保存 . N1 O0 `4 Q4 ]0 o
4 t, H$ O6 _, f4 Y$ r" u$ _, z' l$ x
接着修改sendmail目录下的sendmail.ini文件,主要填的内容有以下几项 C( X3 S$ m2 q. ~ s+ O
- smtp_server=smtp服务器地址(如 smtp.ym.163.com)
2 X }" K, ]6 O+ B- K5 N - auth_username=邮箱登录名(如 info@xxxx.com)
1 Z$ y5 T* A$ `# L, G - auth_password=邮箱密码(如 xxxxxx)
% y6 r1 R; |5 g. ]* h6 h - force_sender=发件人地址全写(如 info@xxxx.com)
复制代码 另外还有一项
: ~7 W, Q4 x. a M3 l& A( s+ m8 Z7 V- ; auto = use SSL for port 465, otherwise try to use TLS
复制代码
, [2 I+ A0 g4 e$ |8 H; S把前面的";"删除,即开启SSL安全登录选项即可
# e5 M; }: C" o0 f/ l0 _& v0 l) [* }3 \9 r0 C
以上四项正确填写修改完成后保存,然后重启IIS即可正常使用。
$ h% i$ r; O# X5 e* ~9 f E9 ?4 c+ u1 C. h: u
如果不能发送邮件,检查下端口是不是被屏蔽了,杀毒软件是不是设置了禁止发送邮件等
# x5 O- T! ]8 l/ t7 z: A( D4 Y, F% i* _6 s& m! R
|
|