【问题标题】:SMTP server response: 550 Invalid recipient to a simple email featureSMTP 服务器响应:550 简单电子邮件功能的收件人无效
【发布时间】:2011-05-29 09:10:27
【问题描述】:

我正在使用 php 创建一个通过电子邮件发送确认消息的网站..

要编辑我的 php.ini,我遵循了这个演练:

http://php.net/manual/en/ref.mail.php

我下载了一个免费的 smtp 服务器来测试连接,我使用端口 25,并将 DNS 服务器作为 localhost。我使用这个服务器来测试我发送的电子邮件是否正在连接

我用这个简单的代码来测试 mail() 函数:

<?php
$to = 'myownemail@yahoo.com';
$subject = 'the subject';
$from = 'email@domain.com';
$message = 'hello';

if(mail($to, $subject, $message, "From: $from"))
  echo "Mail sent";
else
  echo "Mail send failure - message not sent"; ?>

运行时,smtp服务器表明当前活动连接为“myownemail@yahoo.com”。

但网站显示此错误消息:

SMTP 服务器响应:550 收件人无效

我该怎么办?我对开发非常陌生,第一次使用 smtp,所以我不知道发生了什么

PS。我在这里得到了 smtp 服务器>softstack.com/freesmtp.html

【问题讨论】:

  • 告诉我们一些关于 smtp 服务器的事情
  • myownemail@yahoo.com 是真实的电子邮件地址吗?
  • 是的,myownemail@yahoo.com 是一个真实的电子邮件地址。
  • 这是我下载 smtp 服务器的网站:softstack.com/freesmtp.html
  • 您是使用 SMTP 服务器发送邮件还是作为测试服务器接收邮件?

标签: php email smtp


【解决方案1】:

对于测试,您可以尝试使用名为 Test Mail Server Tool 的 this 工具。它的好处是不会发送实际的电子邮件,从而向您的帐户发送垃圾邮件,而是在您的桌面上保存/打开电子邮件,这与发送的电子邮件相同。您可以通过这种方式检查标头并更轻松、更快地进行调试。请注意,它在生产和远程测试中没有用。它不是为此而生的。

【讨论】:

  • 我有一个问题,我应该为 to 变量使用什么电子邮件?
  • 没有发送电子邮件,因此您可以使用任何东西,关键是您应该在打开的电子邮件中看到与发送脚本中的收件人相同的收件人
  • 好的,我测试过了,它在指定的文件夹中收到了邮件。这意味着我正确地发送电子邮件,对吗?
  • 是的,但请注意“发件人”、“收件人”和“抄送”字段,不应出现任何人工制品或电子邮件地址以外的任何内容。同样在邮件表单中尝试使用电子邮件注入,这是一种非常常见的联系表单黑客。谷歌它以获取更多信息。
  • 我仍然不知道为什么我没有收到电子邮件中的消息。我需要它来工作真的很糟糕
【解决方案2】:

从引号内的请求标头中删除 $from 并尝试使用有效的电子邮件地址。

if(mail($to, $subject, $message, "From: " . $from))

【讨论】:

  • “发件人:”。 $from 与 "From: $from" 相同
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-15
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
相关资源
最近更新 更多