繁体   English   中英

在php中发送电子邮件时出现问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM