mail()是PHP自带的一个使用SMTP服务发送邮件的函数,下面是这个函数的原型
mail(hidehai@qq.com, "没有主题", $message, "From: someone@wahaha.org.tw\nReply-To: reply@wahaha.org.tw\nX-Mailer: PHP/" . phpversion());1
mail(hidehai@qq.com, "没有主题", $message, "From: someone@wahaha.org.tw\nReply-To: reply@wahaha.org.tw\nX-Mailer: PHP/" . phpversion());设置好后测试会报错:SMTP server response: 554 failed MAIL FROM verification with the FROM field in message header.
自己测试的版本是PHP5.x ,需要这样才能发送成功,应该是SMTP服务器的问题,
mail(hidehai@qq.com, "没有主题", $message, phpversion());1
mail(hidehai@qq.com, "没有主题", $message, phpversion());之前在网上找了下,php和winwebmail搭配的很少,而且用php,就不能使用企业邮局。
我的winwebmai版本是3.7.6.X ,配置情况都还是差不多,添加相应的用户,
在收发规则选项卡里在进行简单的设置:(效果图)
在SMTP验证IP例外里填上自己的IP。
这样PHP就能正常的连接到SMTP服务器,又不会干扰到其他webmail的用户。
php.ini的设置:
[mail function]
; For Win32 only.
SMTP = 222.***.**.***
smtp_port = 25
; For Win32 only.
sendmail_from = sir@xx.com
;display_errors =Off
;测试的时候最好改为On,回显错误
1
2
3
4
5
6
7
8
9
10
11
[mailfunction]
;ForWin32only.
SMTP=222.***.**.***
smtp_port=25
;ForWin32only.
sendmail_from=sir@xx.com
;display_errors=Off
;测试的时候最好改为On,回显错误
测试代码:
<?php $to = 'hidehai@qq.com' ; $subject = 'subject' ; $message = 'hello' ; $headers = phpversion(); if (mail( $to , $subject , $message , $headers )){ echo "Ok." ; } else { echo "Fail." ; } ?>1
2
3
4
5
6
7
8
9
10
11
12
13
<?php $to = 'hidehai@qq.com' ; $subject = 'subject' ; $message = 'hello' ; $headers = phpversion(); if (mail( $to , $subject , $message , $headers )){ echo "Ok." ; } else { echo "Fail." ; } ?>SMTP server response: 554 failed MAIL FROM verification with the FROM field in message header.
winwebmail这个错误需要关闭收发规则中:
启用SMTP发信认证功能 -> 启用接受认证功能 ->不勾选 启用邮件仿伪造功能