linux部署postfix+dovecot打造属于自己的邮件系统

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

微信截图_20191016115636.jpg

然后我们打开foxmail进行配置,配置基本如下

微信截图_20191016114835.jpg

最后我们发一封邮件进行测试下

微信截图_20191016115037.jpg

看到客户端发送已经是成功的了,我们可以在服务器上查看下,需要在linux上安装mailx

yum install mailx -y

然后输入mail看到邮件已经收到了

微信截图_20191016114707.jpg

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/726.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。