尽管将 php.ini 配置为有效的send_from地址,我还是收到此错误。我知道它是有效的,因为当我从松鼠邮件发送它时它可以工作,但是当用 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
550 不允许送货到此地址
此错误表示发件人正在尝试将电子邮件发送到不允许他发送到的地址。此消息已生成在hMailServer检查了IP范围设置之后。举个例子,默认 IP 范围配置不允许外部用户向其他外部用户发送消息。这是为了防止人们使用服务器发送垃圾邮件。因此,如果外部用户尝试发送消息给另一个外部用户,他将收到此消息。
这就是您得到的错误的含义。这是来自hMailServer文档。
你能试试以下方法是否有效吗?
<?php
mail('tobiasvogel1@googlemail.com','Test Email','This is a test email.',"From: tobiasvogel1@googlemail.com");
?>
如果它不起作用,那么可能是由于您的hMailServer配置错误,您需要检查您的hMailServer日志。
mail() 函数的第 4 个参数不是普通的"from"。在您的代码中,您只传递电子邮件地址而不传递"发件人:" - 第四个参数用于其他邮件标头,因此您必须像这样格式化它:
mail($email, $subject,$message,"From: admin@dayshare.localrnX-Mailer: PHP");
我添加了另一个标题作为示例。
试试这个,对我有用:
ini_set("sendmail_from", "info@yourdomain.com");
您需要引号和分号:
$email="tobiasvogel1@googlemail.com";
这是另一种解决方案 - WAMP 使用 SMTP 本地主机发送邮件
请记住,每次更改 PHP .ini后,
你必须重新启动 WAMP (!!!
附言在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");