1

尽管将 php.ini 配置为有效的 send_from 地址,但我收到此错误。我知道它是有效的,因为当我从 squirrel 邮件发送它时它可以工作,但是当用 php 发送邮件时它就不起作用了。无效地址大概是指 send_from 地址。所以我看不出它怎么会认为这是错误的。这是php代码:

$email="tobiasvogel1@googlemail.com";
$subject = "Your New Password";
$from="admin@dayshare.local";
$message = "Your new password is as follows:

xxxxxxxxxxxxxxxxxxxxxxxxxxx

This email was automatically generated.";

      if(!mail($email, $subject,$message,$from)){
         echo ("error");
      }else echo "success";

在 php.ini 中:

SMTP = localhost

sendmail_from = admin@dayshare.local
4

5 回答 5

5

550 不允许送货到这个地址

此错误表示发件人正在尝试将电子邮件发送到不允许发送到的地址。此消息在 hMailServer 检查 IP 范围设置后生成。例如,默认 IP 范围配置不允许外部用户向其他外部用户发送消息。这是为了防止人们使用您的服务器发送垃圾邮件。因此,如果外部用户尝试向另一个外部用户发送消息,他将收到此消息。

这就是您得到的错误的含义。这来自hMailServer 文档

您可以尝试以下方法是否有效吗?

<?php
mail('tobiasvogel1@googlemail.com','Test Email','This is a test email.',"From: tobiasvogel1@googlemail.com");
?>

如果它不起作用,则可能是由于您的 hMailServer 配置错误,您需要检查您的hMailServer Logs

于 2012-09-19T13:38:41.973 回答
2

mail()函数的第四个参数不是普通的“来自”。在您的代码中,您只传递没有“发件人:”的电子邮件地址 - 第四个参数用于附加邮件标题,因此您必须将其格式化如下:

mail($email, $subject,$message,"From: admin@dayshare.local\r\nX-Mailer: PHP");

我添加了另一个标题作为示例。

于 2012-09-19T13:24:19.233 回答
2

试试这个,对我有用:

ini_set("sendmail_from", "info@yourdomain.com");
于 2013-05-19T14:33:05.237 回答
0

您需要引号和分号:

$email="tobiasvogel1@googlemail.com";
于 2012-09-19T13:16:15.417 回答
0

这是另一个解决方案 - WAMP 使用 SMTP localhost 发送邮件


请记住,每次更改 php.ini 后,

你必须重新启动 wamp (! ! !)

ps 在 php.ini 中,我使用过:

SMTP = localhost 
smtp_port = 25 
sendmail_from = your_user@gmail.com

或者如果 oyu 无法编辑 php.ini,请尝试在您的 php 脚本中插入这些行。

ini_set("SMTP", "localhost");
ini_set("smtp_port", "25");
ini_set("sendmail_from", "your_user@gmail.com");
于 2013-09-16T22:06:31.860 回答