大家非常好奇为什么别人大型公司的论坛注册后会系统自动发送一封注册信息的电子邮件到注册人的信箱里,而同样用的是一种内核的论坛程序,为什么自己架设的却没有这个功能,今天我来为大家解密这个原因。我们拿PHPBB来举例,这个论坛内核早已经写好了论坛邮件发送功能,只需要你本地有个SMTP转发的服务在就可以,由于大公司服务器大多数用的是UNIX或者是LIUNX,因为这些服务器本身具有本地SMTP服务的作用,所以可以直接发注册信息到注册人的邮箱里,而我们个人架设网站大部分都是WINDOWS的平台,由于ASP论坛非常不安全,而ASPX论坛又不好进行开源。
虽然这两种论坛架构非常容易运用些IIS的相关的SMTP服务器来解决问题,但都先天不足,很多网友都非常喜欢用PHP内核的论坛来架设,比如PHPBB、PHPWIND、等这些都是具备论坛发信功能,但由于PHP先天就是LIUNX的宠爱,所以WINDOWS下支持SMTP的东西不是很多,Windows下使用php sendmail配置方法是否不太可能,但也不是绝路,现在告诉大家如何在WINDOWS平台下解决php sendmail配置问题
1.修改 x:\xampp\sendmail\sendmail.ini 檔案,修改以下資料:
smtp_server=mail.vhost.tw
auth_username=sendmail@vhost.tw
auth_password=Xca1Bq
2.修改 x:\xampp\apache\bin\php.ini 檔案,修改以下資料:
[mail function]
; For Win32 only.
;smtp_port = 25
; For Win32 only.
;sendmail_from =
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "E:\xampp\sendmail\sendmail.exe -t"
3. 重新啟動 Apache,設定完畢!
4. 測試mail()功能
<'php
$now = date("Y-m-d h:i:s");
$from_name = '測試寄件者';
$from_email =
$headers = 'From: $from_name <$from_email>';
$body = '嗨, \n 這是一封測試信件來自 $from_name <$from_email>.';
$subject = '[$now] 測試信件發送';
if (mail($to, $subject, $body, $headers)) {
echo "success!";
} else {
echo "fail…";
}
'>
这样,Windows下使用php sendmail配置就顺利完成了!
【编辑推荐】