2013-03-27 54 views
1

搬到新的托管后,我开始有奇怪的问题。PHP邮件()返回路径问题

PHP邮件()函数只工作,如果我用-f参数添加以下行到php.ini。 (如果我省略-f参数,mail()函数将返回true,但也无可奈何。)

[mail function] 
    sendmail_path = "/usr/sbin/sendmail -t -i -f [email protected]" 

然而,这导致所有消息有以下不良标题:

Return-Path: <[email protected]> 

我已经尝试向mail()添加第五个参数,但是它没有效果。

我将非常感谢您的帮助。 在此先感谢!

回答

0

要检查/更改你的PHP邮件配置:

打开php.ini文件(如果你不知道这一点,见下文)搜索读取[邮件功能]行添加/更改您的邮件服务器的详细信息。这可能是本地邮件服务器或您的ISP的邮件服务器。保存/关闭php.ini文件重新启动你的web服务器

的邮件设置可能是什么样子,当你第一次打开php.ini文件的一个例子:

[mail function] 
; For Win32 only. 
SMTP = localhost 
smtp_port = 25 

; For Win32 only. 
;sendmail_from = [email protected] 

; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 
;sendmail_path = 

附加信息是在呼应phpinfo()你可以查看你的PHP配置细节。你可以通过创建一个.php文件来做到这一点。当你在浏览器中运行这个时,你会看到一个完整的PHP配置变量列表。只需搜索包含php.ini和sendmail_path的行即可查看需要使用的值。

另一个想法是,你可以使用ini_set()正确配置您的邮件设置,这样

下面的代码添加到您的电子邮件脚本的顶部,如果你的邮件脚本仍然失败。

// Please specify your Mail Server - Example: mail.example.com. 
ini_set("SMTP","mail.example.com"); 

// Please specify an SMTP Number 25 and 8889 are valid SMTP Ports. 
ini_set("smtp_port","25"); 

// Please specify the return address to use 
ini_set('sendmail_from', '[email protected]'); 
+0

Ini_set修复了问题;谢谢! – SomeCoder 2013-03-27 00:47:51

+0

很高兴听到..欢迎和快乐的编码.. – 2013-03-27 00:50:47