|
|
最近研究uchome,使用在线发邮件的功能,但是测试了"通过 PHP 函数的 sendmail 发送(推荐此方式)"怎么都没用,因为本人现在用的是iis+php环境,怎么调试都没有用,经过研究之后搞定,分享一下教大家在自己服务器上配置sendmail。很多php的网站例如Discuz的论坛和各种phpCMS的网站都用到。0 o8 x( ?% ~+ x" ]2 T+ L
首先你需要先到从http://glob.com.au/sendmail/下载sendmail.zip文件,点此可以直接下载噢,然后把它解压到如D:\php\sendmail\目录下。: d8 n- K9 d7 T6 X) l
然后打开php.ini文件,找到下面这段代码
4 O9 y" ]5 U* Z) f$ d' Y/ d, Y- [mail function] , J& P- _/ a$ X# U1 Z/ K3 a% N
- ; For Win32 only. ) K5 |/ ^9 s4 y. [3 S
- SMTP = localhost . C: W$ ^8 q4 A2 Q: j- O# O
- smtp_port = 25 8 c( d+ C4 T9 A5 |2 n8 q
- ; For Win32 only. " o9 H4 ~' `4 S: C' t6 Q& [
- ;sendmail_from = me@example.com
( D) t K, l+ {* _) s$ Q G, \7 | - ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
T3 B3 T5 B+ E( ^# Z - ; sendmail_path = "" , `1 z; M8 Q( J7 _
- ; Force the addition of the specified parameters to be passed as extra parameters
0 l- ]* D( q3 Q) Z3 P4 f - ; to the sendmail binary. These parameters will always replace the value of
6 l/ v: L1 W$ B6 c; C1 ~( O - ; the 5th parameter to mail(), even in safe mode. ) V) r$ J' c9 {2 S { G9 _- j/ W
- ;mail.force_extra_parameters =
复制代码 默认情况下是以本机做为邮件服务器,这里我们需要借用sendmail来发送邮件,用sendmail来配置如用qq、163的邮箱来发送(一般都是以这种方式)所以我们需要把所有的选项都注销,即把SMTP = localhost和smtp_port = 25前面加上";"然后把sendmai_path=""前面的";"删掉,改为sendmai_path="d:\php\sendmail\sendmail.exe -t",改完后的即是
) K, ~7 d: ~' [3 a* B8 {- [mail function] ! o" }6 K9 `& W9 D
- ; For Win32 only. " [, k* W$ B2 t
- ;SMTP = localhost
+ P0 _% e4 s1 P. I7 X - ;smtp_port = 25 2 @ p) O, X" Q! w$ y
- ; For Win32 only.
0 L: L! r6 Q0 O' j9 {4 v - ;sendmail_from = me@example.com
- Z8 M/ p' k( V! G9 _0 b D - ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
8 S* p/ x$ H3 F! i) W( K - sendmail_path = "d:\php\sendmail\sendmail.exe -t"
! I: J+ r) E: S+ q0 w' o+ ` - ; Force the addition of the specified parameters to be passed as extra parameters , H9 R/ h, X z% k& L
- ; to the sendmail binary. These parameters will always replace the value of
* P: w* v, B G) u - ; the 5th parameter to mail(), even in safe mode.
7 |# K; n% q. `, Z+ i7 G - ;mail.force_extra_parameters =
复制代码
3 S" {) G0 d/ I注意以上只需要开启sendmail_path即可,然后保存 8 t; A1 @; N( j) o2 c: h
% p. e* |% A0 u) _6 o$ L8 f/ K1 R接着修改sendmail目录下的sendmail.ini文件,主要填的内容有以下几项
$ d" D7 m: Y- r2 m; f" ~- smtp_server=smtp服务器地址(如 smtp.ym.163.com)
/ K# t5 A: w0 x' h - auth_username=邮箱登录名(如 info@xxxx.com) ) E7 G/ M' E9 g1 y
- auth_password=邮箱密码(如 xxxxxx) 1 Q/ K, c) S% i
- force_sender=发件人地址全写(如 info@xxxx.com)
复制代码 另外还有一项
. _9 K ~ }( G: Y' d- ; auto = use SSL for port 465, otherwise try to use TLS
复制代码
, K* \! {) c3 {" f; `2 d把前面的";"删除,即开启SSL安全登录选项即可 3 R9 i- Q9 k) M0 ~0 S
: A7 _0 t9 s1 k; x; K: y以上四项正确填写修改完成后保存,然后重启IIS即可正常使用。
( s' _% @* [- P& r) W
9 k& p ^! `2 E4 N4 W如果不能发送邮件,检查下端口是不是被屏蔽了,杀毒软件是不是设置了禁止发送邮件等
+ G9 l5 A* t2 Q3 k- S" z1 s9 @1 P, ] I+ d0 {
|
|