我现在的环境是这样的,apache+php在服务器1上(这台机子没有装sendmail),邮件服务器在服务器2上(用的是sendmail),不知有没有问题?调用另一台机子的sendmail需要改什么配置吗?太奇怪了,怎么会找不到php的内置mail函数呢!!

解决方案 »

  1.   

    将php.ini文件里的[mail function]项指向你的服务器2的IP:
    [mail function]
    SMTP = 服务器2的IP(或者是有Mail服务器的IP); For Win32 only.
    sendmail_from = [email protected]
      

  2.   

    我试了一下,把SMTP指向服务器2的IP地址,还是一样的错误提示?!
    对了,在php.ini中SMTP这一项是for win32 only的呀,在linux下起作用吗?
    另外,不知道linux的系统配置是否对mail函数有影响呢,哪些系统配置会对
    它有影响?253各位了
      

  3.   

    我想知道,上面的这种情况是php.ini的配置的事,还是php的安装有什么问题呢?
    我也碰到了同样的问题。
    我的环境是:
    linux8.0+apache2.0.45+mysql4.0+php4.3.1+qmail其余运行一切正常,就这个函数出了问题:
    Fatal error: Call to undefined function: mail() in /var/www/htdocs/mail.php on line 3
      

  4.   

    <?
    phpinfo();
    ?>
    把以上代码保存为一文件上传到你的服务器上,打开查看一下与MAIL和SMTP的选项,看看能不能帮上忙。
      

  5.   

    我在phpinfo中看到的有关选项是这样的:
    sendmail_from  [email protected]   [email protected] 
    sendmail_path  -t -i         -t -i  
    SMTP           192.168.200.2 192.168.200.2(服务器2的IP)
    smtp_port      25            25 
      

  6.   

    chlinux(bendan),你的所有服务都是装在一台服务器上吗?
    现在解决了没有?
      

  7.   

    没有打开sendmail服务,哪里能找到mail()函数啊!!!!????
      

  8.   

    现在还没有解决啊,不过我想用socket来解决这个问题了,不想用mail()。这个函数没有认证的功能。
    我用的是qmail邮件服务器,web和qmail都在一台机器上,运行正常,smtp和pop3服务都正常运行
      

  9.   

    问题解决了,如果php和sendmail不是运行在一台服务器上的话,不能直接用php内置的mail函数发邮件,只能通过smtp的方式来发。