sendmail

软件包
sendmail.i386
sendmail-cf.i386
sendmail-devel.i386
sendmail-doc.i386
m4
dovecot (pop3服务端)
procmail

配置之前的准备:
1、同步时间
2、设定好主机名
# vim /etc/hosts
192.168.0.249   station249.example.com

配置目录:/etc/mail
sendmail.mc
sendmail.cf
local-host-names
access

例子1:最简单的邮件系统,只允许本机对本机发送邮件

[root@station249 mail]# telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 station249.example.com ESMTP Sendmail 8.13.8/8.13.8; Sun, 12 Sep 2010 22:58:14 +0800
helo moto
250 station249.example.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
mail from: root@station249.example.com
250 2.1.0 root@station249.example.com... Sender ok
rcpt to:user1@station249.example.com
250 2.1.5 user1@station249.example.com... Recipient ok
data
354 Enter mail, end with "." on a line by itself
This is contents
End
.
250 2.0.0 o8CEwEIE014102 Message accepted for delivery
quit
221 2.0.0 station249.example.com closing connection
Connection closed by foreign host.

查看user1是否接受到邮件
# cat /var/mail/user1

例子2:允许其他机器连接过来发送邮件(接受邮件的用户都是在邮件服务器上的用户)
注意:当前的“其他机器”只能是在同一个域或者同一个网段的用户
# vim /etc/mail/sendmail.mc

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# service sendmail restart

iptables设定
# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
# iptables -A INPUT -p udp --dport 25 -j ACCEPT

例子3:允许本机和其他来自任何地方IP登录发送邮件,发送的邮件可以是其他域的邮件

解决方法:开启smtp验证

1、开启smtp验证的配置
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

2、安装验证支持的软件包

# yum install cyrus-sasl* -y

3、重启相关的服务

# service sendmail restart
# service saslauthd restart
# service dovecot restart

# chkconfig ... on

验证是否支持smtp验证功能

[root@php rhce_env]# telnet 192.168.0.249 25
Trying 192.168.0.249...
Connected to station249.example.com (192.168.0.249).
Escape character is '^]'.
220 station249.example.com ESMTP Sendmail 8.13.8/8.13.8; Sun, 12 Sep 2010 23:20:30 +0800
ehlo station249.example.com  #《-----
250-station249.example.com Hello station254.example.com [192.168.0.254], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN  #《----看到AUTH关键字
250-DELIVERBY
250 HELP

例子4:只允许本机和example.com域下的用户登录发送外部邮件
题目的本意就是要求针对某个IP的用户打开中继功能。
什么叫中继?就是允许发送邮件到其他域

# vim /etc/mail/access
Connect:127.0.0.1                       RELAY  <---本身没有
Connect:example.com                     RELAY  <---增加一行

# makemap hash /etc/mail/access.db  < /etc/mail/access

例子5:支持短域名
# vim /etc/mail/local-host-names
station249.example.com
example.com

例子6:设置pop3s,imaps

设计的软件包
dovecot
服务
service dovecot
一般情况下,dovecot服务只支持pop3(110),imap(143)协议

# mutt -f pop://user1@station249.example.com

为了保证邮件内容保密,设置pop3s(995),imaps(993)

# vim /etc/dovecot.conf
protocols = imap imaps pop3 pop3s

ssl_cert_file = /etc/pki/tls/certs/localhost.crt
ssl_key_file = /etc/pki/tls/private/localhost.key
ssl_key_password = 123456

生成密钥文件:
# cd /etc/pki/tls/certs/
# make localhost.key <---输入密码
# mkke localhost.crt
# cp localhost.key  ../private/

# service dovecot restart

iptables设定
iptables -A INPUT -p tcp -m multiport --dports 110,143,993,995 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports 110,143,993,995 -j ACCEPT

验证
# mutt -f pops://user1@station249.example.com

限制只允许example.com域下的用户使用pop3/imap等接收邮件。
首先确定example.com是哪个网段
iptables -A INPUT -p tcp -s 192.168.0.0/24  -m multiport --dports 110,143,993,995 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.0.0/24 -m multiport --dports 110,143,993,995 -j ACCEPT

sendmail配置详解相关推荐

  1. Linux中Nginx安装与配置详解及常见问题

    3 Nginx安装 3.1 安装前的准备     1)准备 pcre-8.12.tar.gz.该文件为正则表达式库.让nginx支持rewrite需要安装这个库.     2) 准备 nginx-1. ...

  2. keepalived介绍、安装及配置详解

    文章目录 keepalived简介 keeplived和LVS关系 VRRP工作原理 keepalived体系结构及工作原理 keepalived安装 keepalived配置详解 keepalive ...

  3. elasticsearch-.yml(中文配置详解)

    此elasticsearch-.yml配置文件,是在$ES_HOME/config/下 elasticsearch-.yml(中文配置详解) # ======================== El ...

  4. (ASA) Cisco Web ××× 配置详解 [三部曲之一]

    (ASA) Cisco Web ××× 配置详解 [三部曲之一] 注意:本文仅对Web×××特性和配置作介绍,不包含SSL ×××配置,SSL ×××配置将在本版的后续文章中进行介绍.   首先,先来 ...

  5. mybatis 同名方法_MyBatis(四):xml配置详解

    目录 1.我们将 数据库的配置语句写在 db.properties 文件中 2.在 mybatis-configuration.xml 中加载db.properties文件并读取 通过源码我们可以分析 ...

  6. logback节点配置详解

    logback节点配置详解 一:根节点 <configuration></configuration> 属性 : debug : 默认为false ,设置为true时,将打印出 ...

  7. PM配置详解之一:企业结构

    1.维护计划工厂 功能说明 在公司结构中定义维护工厂(通常已经作为后勤工厂存在)和维护计划工厂(简称计划工厂). 维护工厂:设备所安装的位置,如某机组安装在合营公司,那么合营公司就是此机组的维护工厂, ...

  8. 转 Log4j.properties配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  9. Iptables防火墙配置详解

    iptables防火墙配置详解 iptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. (1)filter表负责过滤数 ...

最新文章

  1. HDU-5723 Abandoned country
  2. 获取文件唯一id md5
  3. NFS Volume Provider(Part I) - 每天5分钟玩转 OpenStack(62
  4. 揭秘!疫情下的阿里员工如何上班?
  5. 动态库与静态库优缺点比较(转 侵删)
  6. 韩春雨要“翻案”?最新研究发现NgAgo具有DNA编辑能力
  7. Linux 下进入含空格的目录(以及文件夹名开头为`(`)
  8. php错误和异常的处理方式
  9. mysql无法授权问题
  10. CubeMX配置SPI-Flash(W25Q256)
  11. 单片机c语言双电源程序,基于单片机的双电源自动切换开关控制器
  12. 以管理员身份打开cmd窗口
  13. 【论文】写毕业论文过程中遇到的问题及解决方式记录
  14. 什么是SVG及使用方式
  15. 会声会影2018 转码导出H.265/HEVC编码视频
  16. python 日期API
  17. IE8——focus函数不好用
  18. bzero和memset函数区别联系
  19. MYSQL数据库的数据存储文件
  20. Word图片上传控件(WordPaster)更新-2.0.15版本

热门文章

  1. Excel的规划求解实例
  2. 【English】百词斩阅读记事
  3. 美国大厂新员工薪资曝光! 微软最高近30万美元,TikTok低至时薪30美元
  4. php许愿墙mysql_许愿墙的搭建基于mysql
  5. 2-2 组合优化问题-常用模型与通用求解器
  6. 统计学基础之:均值-中位数-众数-极差-中程数-方差-标准差-变异系数
  7. 谷歌发布Android auto车载系统对当前车载市场的影响
  8. 初学编程时需要了解的10件事情
  9. 移动IM开源框架对比
  10. 基于ECS构建微信公众号管理系统