我正在使用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服务器&gt; softstack.com/freesmtp.html
答案 0 :(得分:2)
对于测试,您可以尝试this工具,称为测试邮件服务器工具。它的好处是不会发送实际的电子邮件,因此会向您的帐户发送垃圾邮件,但会在桌面上保存/打开电子邮件,这些电子邮件将会发送给您。您可以通过这种方式检查标头,并更轻松,更快地进行调试。请注意,它在生产和远程测试中毫无用处。这不是为了那个。
答案 1 :(得分:0)
从引号内删除请求标头中的$from
,然后尝试使用有效的电子邮件地址。
if(mail($to, $subject, $message, "From: " . $from))