这个配置可以实现以下功能(可以认为是适用于个人的一个简单邮件服务器):
1. 接收发往某一个特定域名的邮件(本例为keda.io)
2. 邮件用户可以通过使用客户端以imaps协议访问自己的邮件
3. 邮件用户可以通过使用客户端以加密的SMTP协议通过本服务器发送邮件(端口为587,submission)
4. 在本机上接收并转发任何外发邮件
5. 这个配置中邮件用户既是系统用户,邮件存储在/var/mail/用户名 目录下
不包括以下功能:
1. 防垃圾邮件以及病毒扫描
2. 虚拟用户或虚拟域名支持
配置文件:
/etc/mail/smtpd.conf:
代码: 全选
pki violet.keda.io key "/etc/ssl/private/violet.keda.io.key"
pki violet.keda.io certificate "/etc/ssl/violet.keda.io.crt"
listen on localhost
listen on egress tls pki violet.keda.io auth-optional
listen on egress port submission tls-require pki violet.keda.io auth
table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets
accept for local alias <aliases> deliver to maildir "/var/mail/%{user.username}/"
accept from any for domain keda.io alias <aliases> deliver to maildir "/var/mail/%{user.username}/"
accept for any relay
代码: 全选
listen = *
protocols = "imap"
ssl = required
mail_location = maildir:/var/mail/%u
first_valid_uid = 1000
mbox_write_locks = fcntl
mmap_disable = yes
auth_mechanisms = plain
passdb {
driver = bsdauth
}
ssl_cert = </etc/ssl/violet.keda.io.crt
ssl_key = </etc/ssl/private/violet.keda.io.key
userdb {
driver = passwd
}
1. 安装软件(smtpd为自带)
代码: 全选
pkg_add -v dovecot
代码: 全选
openssl genrsa -out /etc/ssl/private/violet.keda.io.key 4096
openssl req -new -x509 -key /etc/ssl/private/violet.keda.io.key -out /etc/ssl/violet.keda.io.crt -days 365
另:由于证书是我们自己签署的,因此在配置客户端时要让其接受任何证书。
创建完成后把密钥和证书文件的权限改为600:
代码: 全选
chmod 600 /etc/ssl/private/violet.keda.io.key
chmod 600 /etc/ssl/violet.keda.io.crt
我把邮件统一放在/var/mail目录下。可更具自己需要调整。以帐户名acheng为例:
代码: 全选
mkdir /var/mail/acheng
chown -R acheng:acheng /var/mail/acheng
代码: 全选
dovecot:\
:openfiles-cur=512:\
:openfiles-max=2048:\
:tc=daemon:
代码: 全选
cap_mkdb /etc/login.conf
代码: 全选
rcctl set dovecot status on
6. 将下面一行加入到/etc/pf.conf,让防火墙允许相关端口的流量通过:
代码: 全选
pass in on egress proto tcp from any to any port {smtp, smtps, imaps, imap, submission}
代码: 全选
echo "violet.keda.io" > /etc/mail/mailname
代码: 全选
pfctl -f /etc/pf.conf
rcctl restart smtpd
rcctl restart dovecot