Postfix 是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的。
postfix由十几个具有不同功能的半驻留进程组成,并且在这些进程中并无特定的进程间父子关系。某一个特定的进程可以为其他进程提供特定的服务。
大多数的postfix进程由一个进程统一进行管理,该进程负责在需要的时候调用其他进程,这个管理进程就是master进程。该进程也是一个后台程序。
这些postfix进程是可以配置的,我们可以配置每个进程运行的数目,可重用的次数,生存的时间等等。通过灵活的配置特性可以使整个系统的运行成本大大降低
下面我们来看看安装配置的过程吧
DNS服务器我选择的unbound,可以查看这个教程https://sulao.cn/post/696.html
unbound的安装配置这里不再赘述,主要配置文件清空添加如下配置
server: verbosity: 1 num-threads: 2 #线程数 interface: 0.0.0.0 #监听地址(一般写本机内网ip) interface: ::0 port: 53 #端口 so-reuseport: yes #为每个线程的传入查询打开专用侦听套接字。可以更均匀地将传入查询分布到线程 cache-min-ttl: 60 #解析最小缓存时间 cache-max-ttl: 600 #解析最大缓存时间 outgoing-range: 8192 access-control: 0.0.0.0/0 allow #访问控制(允许10段ip访问本机) access-control: 127.0.0.1/8 allow #允许本机访问 access-control: ::0/0 allow #允许ipv6网段访问 prefetch: yes #消息缓存元素在它们到期之前被预取以保持缓存是最新的 do-ip4: yes do-ip6: yes do-udp: yes do-tcp: yes so-rcvbuf: 8m so-sndbuf: 8m msg-cache-size: 64m #消息缓存的字节数。 默认值为4 MB。 rrset-cache-size: 128m #RRset缓存的字节数。 outgoing-num-tcp: 256 #为每个线程分配的传出TCP缓冲区数 incoming-num-tcp: 1024 #为每个线程分配的传入TCP缓冲区数 local-zone: "sulao.com" static local-data: "sulao.com NS 172.26.61.52" local-data: "sulao.com MX 5 172.26.61.52" local-data: "sulao.com 86400 IN A 172.26.61.52" local-data: "mail.sulao.com 86400 IN A 172.26.61.52" remote-control: control-enable: yes control-interface: 127.0.0.1 control-port: 8953
接着我们来安装postfix
yum -y install postfix
修改postfix文件
vi /etc/postfix/main.cf #修改76行 myhostname = mail.sulao.com #修改83行 mydomain = sulao.com #修改99行 myorigin = $mydomain #修改116行 inet_interfaces = all #修改164行 mydestination = $myhostname , $mydomain
保存退出,然后重启服务并添加到开机启动
systemctl restart postfix systemctl enable postfix
安装dovecot服务
yum -y install dovecot
修改dovecot配置文件
vi /etc/dovecot/dovecot.conf #26行: 如果不使用IPv6,请修改为* listen = * #在主配置文件中的第48行,设置允许登录的网段地址,也就是说我们可以在这里限制只有来自于某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数 在protocols = imap pop3 lmtp下面一行新增 disable_plaintext_auth = no #允许用户使用明文进行密码验证。之所以这样操作,是因为Dovecot服务程序为了保证电子邮件系统的安全而默认强制用户使用加密方式进行登录,而由于当前还没有加密系统,因此需要添加该参数来允许用户的明文登录 #login_trusted_networks = #去掉前面#,然后右侧填写登陆网段地址,也就是说我们可以在这里限制只有来自于某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数: 此处我就仅允许我同一网段的使用
编辑配置文件10-auth.conf
vi /etc/dovecot/conf.d/10-auth.conf 第9行取消注释并修改 disable_plaintext_auth = no 第97行后添加 login 改为 auth_mechanisms = plain login
编辑配置文件10-mail.conf
vi /etc/dovecot/conf.d/10-mail.conf 30行取消注释并修改为 mail_location = maildir:~/Maildir
编辑配置文件10-master.conf
vi /etc/dovecot/conf.d/10-master.conf 96行:取消注释并添加Postfix smtp验证 unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }
如果我们没有使用ssl的话需要进行下面的操作
vi /etc/dovecot/conf.d/10-ssl.conf 将8行ssl的值修改为 ssl = no
最后重启并把服务添加到开机启动
systemctl restart dovecot systemctl enable dovecot
最后我们添加一个邮件账户,linux账户既是
useradd sender -s /sbin/nologin echo "admin123" | passwd --stdin sender
然后测试在windows上安装foxmail,首先将本机dns改为配置unbound的dns服务器IP
然后我们打开foxmail进行配置,配置基本如下
最后我们发一封邮件进行测试下
看到客户端发送已经是成功的了,我们可以在服务器上查看下,需要在linux上安装mailx
yum install mailx -y
然后输入mail看到邮件已经收到了