防火墙阻止传出 SMTP 连接

防火墙阻止传出 SMTP 连接

我尝试从 CentOS 6.4 发送电子邮件,但无法正常工作。我对服务器的了解非常有限,所以我希望有人能帮助我。以下是我所做的:

  1. 首先,我尝试使用“邮件”命令发送电子邮件,但它不在操作系统中,所以我安装了它。

    # yum install mailx
    
  2. 之后,我尝试使用“mail”命令发送电子邮件,但什么也没发送。我在网上查了一下,发现我需要一个像 sendmail 这样的邮件服务器,所以我安装了它。

    # yum install sendmail sendmail-cf sendmail-doc sendmail-devel
    
  3. 之后,我按照一些教程进行了配置。首先,sendmail.mc 文件。

    # vi /etc/mail/sendmail.mc
    
  4. 注释掉下一行:

    BEFORE
    # DAEMON_OPTIONS('Port=smtp, Name=MTA') dnl
    
    AFTER
    # dnl DAEMON_OPTIONS('Port=smtp, Name=MTA') dnl
    
  5. 检查下几行是否正确:

    # FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
    # ...
    # FEATURE(use_cw_file)dnl
    # ...
    # FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
    
  6. 更新 sendmail.cf

    # m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
    
  7. 在 iptables 文件中添加适当的行来打开端口 25

    # vi /etc/sysconfig/iptables
    
    # -A INPUT -m state --state NEW -m tcp --dport 25 -j ACCEPT
    
  8. 重新启动 iptables 和 sendmail

    # service iptables restart
    # service sendmail restart
    

所以我认为这样就没问题了,但是当我尝试时:

    # mail '[email protected]'
    # Subject: test subject
    # test content
    #.

我检查了邮件日志:

    # vi /var/log/maillog

以下是我的发现:

    Aug 14 17:36:24 dev-admin-test sendmail[20682]: r7D8RItS019578: 
    to=<[email protected]>, ctladdr=<[email protected]> (0/0), 
    delay=1+00:09:06, xdelay=00:00:00, mailer=esmtp, pri=2460500, relay=alt4.gmail-
    smtp-in.l.google.com., dsn=4.0.0, stat=Deferred: Connection timed out with 
    alt4.gmail-smtp-in.l.google.com.

我不明白为什么会出现连接超时。我是不是漏掉了什么?有人能帮我吗?

谢谢。

答案1

防火墙阻止传出 SMTP 连接

您确定您的传出 SMTP 连接没有被防火墙阻止吗?
这是常见的传出垃圾邮件预防措施。

当您在 smtp.gmail.com 上通过 telnet 端口 25 和 587 进行连接时,您是否会收到 SMTP 问候消息?
[您至少应该在端口 587 上收到问候消息]

telnet smtp.gmail.com 587
telnet smtp.gmail.com 25

答案2

非常感谢您的回答。看来我使用的 smtp 服务器未在配置文件中配置。我得到了正确的信息,将其写入配置文件中,现在它工作正常。

谢谢你!

相关内容