如何在 Red Hat Linux 中配置 Sendmail 服务器

本文将展示配置 sendmail 服务器的简单步骤,该服务器将使用外部 smtp 服务器通过网络发送邮件。

请确保它不会充当smtp服务器,而是使用smtp.gmail.com发送邮件。您可以使用本地linux邮箱地址在internet上的任何地址上发送邮件,但无法从域外接收任何邮件。

注意:这是一个简单的配置,但如果我们想插入一些特殊的权限和身份验证,请告诉我,我会尝试提供其他信息。

要从最初的配置开始,我们需要检查机器中是否存在 STARTLS 和 SASLv2.

# sendmail -d0.1 -bv root
Version 8.13.8
Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6 
NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF SOCKETMAP STARTTLS 
 TCPWRAPPERS USERDB USE_LDAP_INIT 
 ============ SYSTEM IDENTITY (after readcf) ============ 
 (short domain name) $w = server 
 (canonical domain name) $j = server.example.com 
 (subdomain name) $m = example.com 
 (node name) $k = server.example.com 
 ========================================================

使用“yum”包管理器安装 sendmail rpm 及其依赖项。

# yum -y install sendmail
# rpm -qa | grep sendmail
sendmail-cf-8.13.8-2.el5 
sendmail-8.13.8-2.el5

确保安装 sendmail-cf, 因为在将 sendmail.mc 映射到 sendmail.cf 时,我们需要配置文件中使用到 sendmail-cf

# vi /etc/mail/sendmail.mc
define(`SMART_HOST', `smtp.gmail.com')dnl

#(在你的 sendmail.mc 文件中添加这两行来监听端口 465 和 587)
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl 
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl

# 取消这一行注释
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

# 添加这一行
FEATURE(`authinfo', `hash /etc/mail/auth/client-info.db')dnl 
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl 
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl

# 取消注释 以便 sendmail 监听 587 端口 
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

# 取消注释 以便 sendmail 监听 587 端口 
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl 

# 填写域名并取消注释
MASQUERADE_AS(`myonitroad.com')dnl

在 /etc/mail 中创建一个目录 auth 并为 auth 分配适当的权限,以便其他用户无法访问此目录

# mkdir /etc/mail/auth
# cd /etc/mail/auth

创建一个新文件 client-info

# vi client-info
AuthInfo:gmail.com "U:username" "P:Password" "M:PLAIN" 
AuthInfo: "U:username" "P:Password" "M:PLAIN 

重启服务并测试:

# makemap -r hash client-info.db < client-info
# vi /etc/mail/access 
Connect:your-ip RELAY 
# m4 sendmail.mc > sendmail.cf 
# service sendmail restart 
# sendmail -v user@onitroad.com 
日期:2020-06-02 22:17:24 来源:oir作者:oir