Dovecot是一个开源的IMAP和POP3服务器,适用于Linux / UNIX类系统,主要考虑安全性。 Timo Sirainen发起了Dovecot并于2002年7月首次发布.Dovecot开发人员主要致力于生产轻量,快速且易于设置的开源邮件服务器
在这篇文章中,我们将向您展示如何安装和配置Postfix和Dovecot,这是我们邮件系统的两个主要组件。
Postfix是一种开源邮件传输代理(MTA),一种用于发送和接收电子邮件的服务。Dovecot是一个IMAP / POP3服务器,在我们的设置中它还将处理本地交付和用户身份验证。
本教程是为Ubuntu 16.04编写的,但是相同的小修改步骤应适用于任何较新版的ubuntu。
前提条件
在继续本教程之前,请确保以具有sudo权限的用户身份登录。
安装Postfix和Dovecot
Ubuntu默认存储库中的Dovecot软件包已过时。为了可以使用imap_sieve
模块,我们将从Dovecot社区存储库安装Dovecot
使用以下wget命令将存储库GPG密钥添加到apt源密钥环:
wget -O- https://repo.dovecot.org/DOVECOT-REPO-GPG | sudo apt-key add -
使用以下命令启用Dovecot社区存储库:
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
sudo apt updatesudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
Postfix配置
我们将设置Postfix以使用虚拟邮箱和域
首先创建sql
配置文件,该文件将指示postfix如何访问Postfix Admin创建的MySQL数据库。
sudo mkdir -p /etc/postfix/sql
/etc/postfix/sql/mysql_virtual_domains_maps.cf
user = postfixadminpassword = P4ssvv0rD
hosts = 127.0.0.1
dbname = postfixadmin
query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
/etc/postfix/sql/mysql_virtual_alias_maps.cf
user = postfixadminpassword = P4ssvv0rD
hosts = 127.0.0.1
dbname = postfixadmin
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf
user = postfixadminpassword = P4ssvv0rD
hosts = 127.0.0.1
dbname = postfixadmin
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
user = postfixadminpassword = P4ssvv0rD
hosts = 127.0.0.1
dbname = postfixadmin
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'
/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
user = postfixadminpassword = P4ssvv0rD
hosts = 127.0.0.1
dbname = postfixadmin
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
user = postfixadminpassword = P4ssvv0rD
hosts = 127.0.0.1
dbname = postfixadmin
query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'
创建SQL配置文件后,更新主Postfix配置文件以包含有关存储在MySQL数据库中的虚拟域,用户和别名的信息。
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
0
postconf命令显示配置参数的实际值,更改配置参数值或显示有关Postfix邮件系统的其他配置信息。
本地交付代理会将传入的电子邮件传递到用户的邮箱。运行以下命令将Dovecot的LMTP服务设置为默认邮件传输服务:
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
1
使用先前生成的Let的加密SSL证书设置TL参数:
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
2
配置经过身份验证的SMTP设置并将身份验证移交给Dovecot:
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
3
我们还需要编辑Postfix主配置文件master.cf
并启用提交端口(587
)和smtps端口(465
)。
使用文本编辑器打开文件并取消注释/编辑以下行:
/etc/postfix/master.cf
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
4
重新启动Postfix服务以使更改生效。
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
5
此时您已成功配置Postfix服务。
配置Dovecot
在本节中,我们将配置Dovecot以匹配我们的设置
首先配置dovecot-sql.conf.ext
指示Dovecot如何访问数据库的文件以及如何查找有关电子邮件帐户的信息。
/etc/dovecot/dovecot-sql.conf.ext
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
6
不要忘记使用正确的MySQL凭据(数据库,用户和密码)。
接下来,编辑conf.d/10-mail.conf
文件并编辑以下变量:
/etc/dovecot/conf.d/10-mail.conf
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
7
要使身份验证工作,请打开conf.d/10-auth.conf
,编辑以下行并包含该auth-sql.conf.ext
文件:
/etc/dovecot/conf.d/10-auth.conf
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
8
打开conf.d/10-master.conf
文件,并按如下所示进行修改:
/etc/dovecot/conf.d/10-master.conf
echo "deb https://repo.dovecot.org/ce-2.3-latest/ubuntu/$(lsb_release -cs) $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/dovecot.list
9
打开conf.d/10-ssl.conf
并启用SSL / TLS。
/etc/dovecot/conf.d/10-ssl.conf
sudo apt updatesudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
0
确保使用SSL证书文件的正确路径。如果你之前已经配置过PostFix,你应该已经有fullchain.pem
,privkey.pem
,dhparam.pem
文件在您的服务器上。有关如何创建免费的Let't Encrypt SSL证书和Diffie-Hellman密钥的更多信息,请查看本教程
打开conf.d/20-imap.conf
文件并激活imap_quota
插件:
/etc/dovecot/conf.d/20-imap.conf
sudo apt updatesudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
1
打开conf.d/20-lmtp.conf
文件并按如下所示进行编辑:
/etc/dovecot/conf.d/20-lmtp.conf
sudo apt updatesudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
2
在conf.d/20-lmtp.conf
文件中定义默认邮箱:
/etc/dovecot/conf.d/15-mailboxes.conf
sudo apt updatesudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
3
有两种不同类型的配额大小,一种是针对整个域设置的,另一种是针对每个用户邮箱设置的。在本系列的前一部分中,我们已经在PostfixAdmin中启用了配额支持,这意味着配额信息将存储在PostfixAdmin数据库中
现在,我们需要配置Dovecot以连接到数据库,处理配额限制以及运行脚本,当用户的配额超过指定限制时,该脚本会向用户发送邮件。为此,请打开conf.d/90-quota.conf
文件并按如下所示进行修改:
/etc/dovecot/conf.d/90-quota.conf
sudo apt updatesudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
4
我们还需要告诉dovecot如何访问SQL配额字典。打开dovecot-dict-sql.conf.ext
文件并编辑以下行:
/etc/dovecot/dovecot-dict-sql.conf.ext
sudo apt updatesudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
5
确保使用正确的MySQL凭据(数据库,用户和密码)。
创建以下shell脚本,如果其配额超出指定限制,将向用户发送电子邮件:
/usr/local/bin/quota-warning.sh
sudo apt updatesudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
6
通过运行以下命令使脚本可执行:
sudo apt updatesudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
7
最后重启dovecot服务以使更改生效。
sudo apt updatesudo debconf-set-selections <<< "postfix postfix/mailname string $(hostname -f)"sudo debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"sudo apt install postfix postfix-mysql dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-mysql
8
至此,您应该拥有功能齐全的邮件系统,在下一篇文章中我们将会配置并集成Rspamd邮件过滤器,如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持
还没有评论,来说两句吧...