我尝试从 CentOS 6.4 发送电子邮件,但无法正常工作。我对服务器的了解非常有限,所以我希望有人能帮助我。以下是我所做的:
首先,我尝试使用“邮件”命令发送电子邮件,但它不在操作系统中,所以我安装了它。
# yum install mailx
之后,我尝试使用“mail”命令发送电子邮件,但什么也没发送。我在网上查了一下,发现我需要一个像 sendmail 这样的邮件服务器,所以我安装了它。
# yum install sendmail sendmail-cf sendmail-doc sendmail-devel
之后,我按照一些教程进行了配置。首先,sendmail.mc 文件。
# vi /etc/mail/sendmail.mc
注释掉下一行:
BEFORE # DAEMON_OPTIONS('Port=smtp, Name=MTA') dnl AFTER # dnl DAEMON_OPTIONS('Port=smtp, Name=MTA') dnl
检查下几行是否正确:
# 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
更新 sendmail.cf
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
在 iptables 文件中添加适当的行来打开端口 25
# vi /etc/sysconfig/iptables # -A INPUT -m state --state NEW -m tcp --dport 25 -j ACCEPT
重新启动 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 服务器未在配置文件中配置。我得到了正确的信息,将其写入配置文件中,现在它工作正常。
谢谢你!