|
|
最近研究uchome,使用在线发邮件的功能,但是测试了"通过 PHP 函数的 sendmail 发送(推荐此方式)"怎么都没用,因为本人现在用的是iis+php环境,怎么调试都没有用,经过研究之后搞定,分享一下教大家在自己服务器上配置sendmail。很多php的网站例如Discuz的论坛和各种phpCMS的网站都用到。
9 x; O) x8 N& a6 \5 H% }8 u首先你需要先到从http://glob.com.au/sendmail/下载sendmail.zip文件,点此可以直接下载噢,然后把它解压到如D:\php\sendmail\目录下。
/ P6 }8 |- m9 S+ Z* ?+ }! y7 k然后打开php.ini文件,找到下面这段代码
. B. z: U0 f! Q- [mail function]
' N5 _* M4 i" h! @ - ; For Win32 only.
& ^; {1 U8 e* f: Z: g X - SMTP = localhost
1 t3 @9 e" H" q# W- h" G - smtp_port = 25 ( _5 B! _: f" H/ H
- ; For Win32 only.
( Z. u5 l. q Q) j4 l# ^$ r) g# N - ;sendmail_from = me@example.com
! \- H* O9 E# i. E - ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). - h" N% P4 K2 P- `+ X; Z) k! S
- ; sendmail_path = ""
$ H! m9 c+ H+ S- D& ] - ; Force the addition of the specified parameters to be passed as extra parameters
; N9 E4 s0 l* X/ p9 X8 K - ; to the sendmail binary. These parameters will always replace the value of ' Y: r% B+ w& v0 r+ V. G8 n' b
- ; the 5th parameter to mail(), even in safe mode. $ D6 Q! r: ^8 w3 e6 L' O
- ;mail.force_extra_parameters =
复制代码 默认情况下是以本机做为邮件服务器,这里我们需要借用sendmail来发送邮件,用sendmail来配置如用qq、163的邮箱来发送(一般都是以这种方式)所以我们需要把所有的选项都注销,即把SMTP = localhost和smtp_port = 25前面加上";"然后把sendmai_path=""前面的";"删掉,改为sendmai_path="d:\php\sendmail\sendmail.exe -t",改完后的即是 % J, s1 j7 V3 Q. Z9 `' X
- [mail function] ! i* a7 v) k5 w4 i, u+ u; t* @% n
- ; For Win32 only. $ Z$ ?+ @% O4 T- A+ B
- ;SMTP = localhost
2 ]7 I. X. {* x5 P - ;smtp_port = 25
4 n2 N; `/ {/ j8 [7 Z2 @ - ; For Win32 only. ( r" R% b8 o% ^. Z
- ;sendmail_from = me@example.com 1 W' m0 n+ W; G5 R
- ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 5 `7 `1 F+ B6 i5 a7 N2 j) q
- sendmail_path = "d:\php\sendmail\sendmail.exe -t" 5 P7 j* @6 [+ q6 l
- ; Force the addition of the specified parameters to be passed as extra parameters 6 [6 c! l6 y! V: T3 v
- ; to the sendmail binary. These parameters will always replace the value of 9 y4 c% F+ u- t/ }9 P
- ; the 5th parameter to mail(), even in safe mode. ! m* f# R1 N* _. n
- ;mail.force_extra_parameters =
复制代码
$ B X- g0 Z3 v& ^/ a0 j0 w. h注意以上只需要开启sendmail_path即可,然后保存 1 B ~4 c$ S4 a% ~5 ^" T8 G, J
3 m7 q* {/ Y( A' i+ A3 B
接着修改sendmail目录下的sendmail.ini文件,主要填的内容有以下几项 3 g0 m% C# ]' w) V
- smtp_server=smtp服务器地址(如 smtp.ym.163.com)
. A0 Y* W7 F- W: P: [0 M - auth_username=邮箱登录名(如 info@xxxx.com)
, |! K- J+ X/ x& R: f/ t6 h' Y - auth_password=邮箱密码(如 xxxxxx)
4 t, t2 J2 V. O7 s/ R- e8 r - force_sender=发件人地址全写(如 info@xxxx.com)
复制代码 另外还有一项
+ l; f, p+ q7 x) N+ J, a- ; auto = use SSL for port 465, otherwise try to use TLS
复制代码
1 @% B2 k7 v! M* K/ v8 E; F把前面的";"删除,即开启SSL安全登录选项即可
$ p( Z$ [8 O5 O/ C% B
6 u5 }( Y0 N+ ?2 m以上四项正确填写修改完成后保存,然后重启IIS即可正常使用。
5 R; A; \& h( D# b4 C1 f9 O( @; t, y
如果不能发送邮件,检查下端口是不是被屏蔽了,杀毒软件是不是设置了禁止发送邮件等
) w: E1 S& @: |& Z* ]1 F+ Z+ }! N8 Q) a, r
|
|