[英]Problem while sending email in php
我执行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);
?>
你在这里做的是尝试发送电子邮件,因为你是domain.com
的所有者/用户。
如果要通过PHP发送电子邮件,则必须提供某些电子邮件服务器的有效凭据。 您可以在自己的计算机上自行创建邮件服务器,但需要付出一些努力。 好吧,在UNIX中它更容易,在Windows上你必须下载一些像hMailServer这样的软件。
因此,创建一个Gmail.com帐户, 在这里您可以在脚本中设置配置数据(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
这个例子可能会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.