本文将展示配置 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