我正在尝试使用PEAR Mail包和SMTP在PHP中发送电子邮件,但我一直收到错误SMTP: Failed to connect socket: Connection Refused
我对SMTP的工作方式一无所知,所以请耐心等待。
这是我的代码:
$recipients = $_SESSION['email'];
$headers["From"] = "example@example.com";
$headers["To"] = "example@example.com";
$headers["Subject"] = 'Subject Text!';
$mailmsg = $_SESSION['body'];
/* SMTP server name, port, user/password */
$smtpinfo["host"] = "mail.example.com";
$smtpinfo["port"] = "587";
$smtpinfo["auth"] = true;
$smtpinfo["username"] = $email_user;
$smtpinfo["password"] = $email_pass;
/* Create the mail object using the Mail::factory method */
$mail_object =& Mail::factory("smtp", $smtpinfo);
/* Ok send mail */
$send = $mail_object->send($recipients, $headers, $mailmsg);
if (PEAR::isError($send)) {
echo '<p>Error: ' . $send->getMessage() . '</p>';
} else {
header('Location: ../../emailed.php');
}
我所知道的是:
Domain是hostgator,电子邮件处理程序是Keiro Connect。
我不确定要经过哪个端口。我查看了这些服务,并说听力IP地址是:
我还注意到SMTP传递设置为使用DNS MX记录直接传递。我不知道这是否意味着什么。
我做错了什么?我应该寻找什么,以便我能按顺序获得所有参数? 任何帮助将不胜感激。
答案 0 :(得分:3)
仅仅因为您正在侦听端口并不意味着您可以访问它。系统上的防火墙或上游内联设备可以阻止它。
从您运行脚本的本地计算机上,执行telnet mail.example.com 587
并提示您是否提示?
答案 1 :(得分:0)
我之前遇到过这样的问题..我吃了几个小时才解决......
在服务器上试用您的脚本 ..有些时候对于某些SMTP主机,您无法从本地计算机发送电子邮件。
我太迟了添加答案(或建议)..但它可以帮助某人..
答案 2 :(得分:0)
如果您没有ssl认证,我建议使用端口25.在我获得ssl之后,我将把端口配置更改为465.为什么使用该端口号?我不认为它符合hostgator。 从hostgator查看此网页。 http://support.hostgator.com/articles/email-connection-settings