我用以下代码进行了测试,提示OK,但是没有收到邮件,不知道有谁知道什么原因$to ="[email protected]"; //不是真的,测试
$subject = "test"; 
$msg = "test";
$headers = "From:[email protected]"; //不是真的,测试
if(mail("$to", "$subject", "$msg", "$headers"))
echo "ok";//
else
echo "no";//

解决方案 »

  1.   

    @ini_set("SMTP",$this->smtp["host"]);
    @ini_set("smtp_port",$this->smtp["port"]);
    @ini_set("sendmail_from",$this->smtp["from"]);
    要设置php.ini里的配置。
    一般是loaclhost,还要注意发送断口不要被屏蔽了
      

  2.   

    mail返回正确,不代表已经发送出去。
      

  3.   


    非常感谢dingsongtao的热心回复,我看了,你说的设置我已经设置过了.在php.INI里
    [mail function]
    ; For Win32 only.
    SMTP = localhost
    smtp_port = 25; For Win32 only.
    sendmail_from = [email protected] //不是真的,测试
      

  4.   

    你localhost开了25吗?确定smtp配置正确吗?你用outlook先看看能不能发邮件
      

  5.   

    php发邮件有两种途径,1内部服务器发送2外部服务器发送,
    内部的就上面那个吧。外部的就程序我这儿有,如有需要,我发给你~~
      

  6.   


    多谢c461439564的热心回复,我现在想用win自带的stmp服务来发信,因为有好几个程序要用,要是换成别的还得再修改.
      

  7.   

    用mail()函数,需要安装个邮件服务器。
      

  8.   

    服务器上已经安装过了stmp服务.
      

  9.   

    本人也没有试过,不过我知道在防火墙里面不是有个“Internet邮件服务器(smtp)”,你试着把这个勾上看结果会怎么样!
      

  10.   

    多谢 suixinsuoyu2hao ,我没有开防火墙.
      

  11.   

    那你在本地服务器配一个hmailserver。安装好后,配置
    1.登陆,输入密码
    2.指定本地服务器名localhost
    3.在”Advanced>>IP Range>>My Computer”里,把POP3和IMAP前面的勾去掉,因为我们并不想用这个服务器收信,也不打算用IMAP协议;把所有的“Require SMTP authentication”选项都去掉是帮PHP扫清发信的障碍。
    4.在”Advanced>>IP Range>>Internet”中,把SMTP, POP3, IMAP全部去掉,因为我们不想外人使用我们的邮件服务器;同时把“Require SMTP authentication”以加强安全性。现在本地邮件发送服务器就配置完毕了。最后不要忘记在php.ini中确保以下部分没有被注释掉:
    [mail function]
    ; For Win32 only.
    smtp = localhost
    smtp_port = 25
    ; For Win32 only.
    sendmail_from = [email protected]
      

  12.   

    多谢c461439564的回复,由于我的服务器有好多程序都是用php这个默认函数发信,要是安装其他邮件服务器,会影响到其他程序.