sendmail 学习笔记

 基础知识

1.守护进程
sendmail,监听端口25。

2.配置文件
/etc/aliases /etc/mail

/etc/mail/sendmail.cf
/etc/mail/sendmail.mc(通过修改该文件生成一个sendmail.cf文件,如下使用m4命令:)
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf (m4需要安装sendmail-cf-8.13.1-3.2.el4.i386.rpm)
  
  /etc/mail/access.db 决定那些主机可以通过本邮件服务器发送邮件,该文件是二进制,所以要通过修改access文件来生产access.db。
  access 文件格式:
  IP|域名  RELAY|REJECT|OK|DISCARD      (允许SMTP代理投递|拒绝接受并发布错误信息|无条件接受|放弃邮件,无错误信息发布)
  192.168  RELAY  //允许192.168整个网段的IP
  使用命令makemap生产access.db
  makemap hash /etc/mail/access.db < /etc/mail/access

  /etc/mail/submit.mc
  /etc/mail/submit.cf

3.启动脚本
service sendmail start|stop|restart|status

4.sendmail.mc初始配置

include(`/usr/share/sendmail-cf/m4/cf.m4')dnl     包含/usr/share/sendmail-cf/m4/cf.m4文件;

VERSIONID(`setup for Red Hat Linux')dnl      定义版本信息;

OSTYPE(`linux')dnl        选择包含操作系统指定属性的文件;

define(`confDEF_USER_ID',``8:12'')dnl      指定sendmail用户使用用户ID为8,组ID为12;

dnl define(`confAUTO_REBUILD')dnl   

define(`confTO_CONNECT', `1m')dnl      设置等待连接的最长时间为1分钟;

define(`confTRY_NULL_MX_LIST',true)dnl      如果MX记录指向本机,则sendmail直接连接到远程主机;

define(`confDONT_PROBE_INTERFACES',true)dnl     sendmail不会自动的把服务器网络接口视为有效地址;

define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl    设置procmail的存放路径;

define(`ALIAS_FILE', `/etc/aliases')dnl      设置邮件别名存放路径;

define(`STATUS_FILE', `/var/log/mail/statistics')dnl    设置日志文件路径;

define(`UUCP_MAILER_MAX', `2000000')dnl      基于UUCP协议的mailer处理信息的最大限制为2M;

define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl    设置用户数据库文件路径;

define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl 设置部分邮件命令的标志;

define(`confAUTH_OPTIONS', `A')dnl      授权成功后,将AUTH参数添加到邮件的消息头中;

dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl  
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confDONT_BLAME_SENDMAIL',`groupreadablekeyfile')dnl
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confTO_IDENT', `0')dnl       设置ident查询等待的最大响应时间为0秒;
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl      允许msa被DAMEMON-OPION覆盖的默认配置;

FEATURE(`smrsh',`/usr/sbin/smrsh')dnl      设置邮件发送器smrsh的存放路径;

FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl   设置邮件发送器数据库的存放路径;

FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl  设置虚拟邮件域数据库的存放路径;

FEATURE(redirect)dnl        支持.redirect虚拟域;

FEATURE(always_add_domain)dnl       增加主机名到所有本地发送的邮件;

FEATURE(use_cw_file)dnl        加载/etc/mail/local-host-name文件中定义的主机;

FEATURE(use_ct_file)dnl        加载可信任用户名单;

dnl define(`confMAX_DAEMON_CHILDREN', 12)dnl

dnl define(`confCONNECTION_RATE_THROTTLE', 3)dnl

FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl   使用procmail作为本地邮件发送者;

FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl   从指定数据库中加载可中继的域;

FEATURE(`blacklist_recipients')dnl      根据访问数据库的值过滤外来邮件;

EXPOSED_USER(`root')dnl        禁止伪装发送用户地址中出现root用户;

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl   指定sendmail任为MTA运行时的参数;

DAEMON_OPTIONS(`Port=25, Name=MSA')dnl
dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl
dnl DAEMON_OPTIONS(`Name=MTA-v4, Family=inet, Name=MTA-v6, Family=inet6')
FEATURE(`accept_unresolvable_domains')dnl     可接收不能由DNS解析的主机所发送的邮件;

dnl FEATURE(`relay_based_on_MX')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl     设置本地域;

dnl MASQUERADE_AS(`mydomain.com')dnl
dnl FEATURE(masquerade_envelope)dnl
dnl FEATURE(masquerade_entire_domain)dnl
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
MAILER(smtp)dnl         指定sendmail所有SMTP发送者,包括smtp,esmtp,smtp8和relay;

MAILER(procmail)dnl        指定使用procmail作为本地邮件发送者;

5.submit.mc初始配置(通过修改该文件使用m4生成submit.cf)
divert(0)dnl         将配置文件导出生成cf配置文件;

include(`/usr/share/sendmail-cf/m4/cf.m4')
VERSIONID(`linux setup for Red Hat Linux')dnl
define(`confCF_VERSION', `Submit')dnl      设置配置版本;

define(`__OSTYPE__',`')dnl dirty hack to keep proto.m4 from complaining  经过proto.m4检查后,将__OSTYPE__值设置为空;

define(`_USE_DECNET_SYNTAX_', `1')dnl support DECnet    设置支持DECNET;

define(`confTIME_ZONE', `USE_TZ')dnl      设置系统时区;

define(`confDONT_INIT_GROUPS', `True')dnl     禁止直行initgroups程序;

define(`confPID_FILE', `/var/run/sm-client.pid')dnl    设置PID文件路径;

dnl define(`confDIRECT_SUBMISSION_MODIFIERS',`C')    
FEATURE(`use_ct_file')dnl       加载可信任用户名单
dnl
dnl If you use IPv6 only, change [127.0.0.1] to [IPv6:::1]
FEATURE(`msp', `[127.0.0.1]')dnl      设置msp的IP地址

6./etc/aliases
设置别名,默认情况,系统中所有账号别名为root,所以邮件全部由root接收。
修改完aliases,使用命令newaliases生效。

7.安装dovecot,并启动服务,来提供pop和imap服务,实现异地接受邮件
/etc/dovecot.conf文件内容修改:
protocols = imap imaps pop3 pop3s

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值