2011-06-02 103 views
4

我试图在我的本地计算机上使用PHP邮件,但它只是不工作。我使用从PHP网站的标准脚本:不能发送邮件使用PHP邮件功能

PHP错误我得到

SMTP server response: 550 Error sending message: Error: FROM address is invalid 

实际PHP

$to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 

我下载了一个本地邮件服务器,argosoft。它表示服务URL是http://services.argosoft.com/RelayService/Service.asmx。我认为这是我在php.ini中。

php ini。

For Win32 only. 
SMTP = services.argosoft.com/RelayService/Service.asmx 
smtp_port = 25 
+0

我有什么似乎是同一个问题:http://stackoverflow.com/questions/1429317/strange-behavior -in-php-mail-function-address-does-exist – cwallenpoole 2011-06-02 03:56:11

回答

2

我以前曾经有过这样的错误,我相信所有你需要做的就是更改电子邮件[email protected]到真实的电子邮件。请确保您将其发送给真实的电子邮件。

+0

感谢你的回复,但是没有,试过之前。 – dgamma3 2011-06-02 03:55:01

+0

当然。对不起,没有工作。 – 2011-06-02 03:58:18

+0

也许你的意思是改变php.ini中的其他东西。您是否打算更改sendmail_from – dgamma3 2011-06-02 04:00:11

0

将@ example.com替换为真实的电子邮件地址。

,并在php.ini中设置

SMTP = localhost 
+0

当我将SMTP设置为localhost时出现此错误: 无法连接到“本地主机”端口25上的邮件服务器,请在php.ini中验证您的“SMTP”和“smtp_port”设置,或使用ini_set ) – dgamma3 2011-06-02 04:06:48

+1

在cmd中运行这个命令,'netstat -an'你看到127.0.0.1:25吗? – 0xAli 2011-06-02 04:12:25

+0

我看到很多127.0.0.1,但没有端口25. – dgamma3 2011-06-02 04:14:03

0

显然,许多邮件系统都与回车\r麻烦。您可能想修改您的$header以仅使用新行字符\n。看看是否有效。

此外,你可能想使用完整的从头部尝试:

From: Some Name Here <[email protected]>

+0

知道这是旧的,但我认为我会分享知识:根据RFC2822,标题字段将由CRLF分隔,即“\ r \ n”。 – Anpan 2013-12-10 09:15:22