执行php邮件脚本时,我遇到了一个奇怪的错误。它与服务器相关无法验证发件人。我看到以下错误:
无法添加收件人email@domain.com [SMTP:响应代码无效 从服务器收到(代码:550,响应:验证失败 不可路由的地址发送者验证失败)]
你知道为什么会出现这个错误吗?
<?php
require_once "Mail.php";
$kw = (string)$_GET['keyword'];
$e = (string)$_GET['emailid'];
$uname="xxx";
$password="xxx";
$con=mysql_connect("Localhost","root","");
if(!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mysql_db",$con);
mysql_query("INSERT INTO mail_alert (uname,emailid,password,keyword)values('$kw','$e','$uname','$password')");
$from = "mail.domain.com";
$to = $e;
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "ssl://domain.com";
$port="465";
$username = "login";
$password = "xxx";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp =Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
mysql_close($con);
&GT;
答案 0 :(得分:2)
您在此处所做的是尝试发送电子邮件,因为您是domain.com
的所有者/用户。
如果您想通过PHP发送电子邮件,则必须提供某些电子邮件服务器的有效凭据。您可以在自己的计算机上自行创建邮件服务器,但需要付出一些努力。好吧,在UNIX中它更容易,在Windows上你必须下载一些软件,如hMailServer。
更简单的解决方案可能是create account on some third-party service, e.g. Gmail。
因此,创建一个Gmail.com帐户,here您需要在脚本中设置配置数据(SMTP地址,端口号;用户名和密码是Gmail的帐户)。
SMTP: smtp.gmail.com
Port for TLS/STARTTLS: 587
Port for SSL: 465
User name: your Gmail email address
Password: your Gmail password
This example可能会有所帮助。