Windows Server 2008 SMTP成功连接,但邮件未发送

时间:2019-09-07 16:46:00

标签: php windows email server smtp

我尝试通过本地的smtp服务器(使用PEAR邮件)从php发送邮件。我有一条成功消息,但该消息未发送。我认为问题出在我的服务器上。即使我使用Telenet测试,我也不会出错。这是我的php代码的摘录:

require_once "Mail.php";

$from = "<hotline.cfao@test.com>";
$to = "<pessokho@gmail.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

$host = "10.68.153.137";
$port = "25";

$headers = array ('From' => $from,
  'To' => $to,
  'Subject' => $subject);
$smtp = Mail::factory('smtp',
  array ('host' => $host,
    'port' => $port));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
 } else {
  echo("<p>Message successfully sent!</p>");
 }

当我调用此脚本时,我收到“消息已成功发送!”。在我的邮箱中检查时,我什么也没得到。

1 个答案:

答案 0 :(得分:0)

您必须分享有关您的问题的更多详细信息,实际上,当您看到发送消息成功时,这意味着您的电子邮件服务器已经完成了工作,但是它可能在您身边或您的互联网提供商(ISP)的传出端口正在阻止smtp电子邮件端口< / p>

检查出站端口是否可访问,SMPT 25:

键入以下命令:

telnet example.com 25

查看结果:

如果未阻止端口25,您将获得成功的220响应(文本可能会有所不同)。

Trying 64.13.192.208...
Connected to example.com.
Escape character is '^]'.
220 example.com ESMTP Exim 4.63 Sat, 07 Sep 2019 20:40:01 -0400

如果端口25被阻止,您将得到连接错误或根本没有响应。

Trying 150.13.192.200...
telnet: connect to address 150.13.192.200: Connection refused
telnet: Unable to connect to remote host

如果其关闭(由于发送垃圾邮件问题,通常在ISP的60%中关闭了),则可以通过某种方式对其进行修复

1-更改您的isp

2-将其他电子邮件服务器用作SMTP中继

3-使用VPN

4-使用加密端口587