关于邮件服务器搭建的杂七杂八
前言
之前搭建邮件服务器的时候踩过好多坑,然而过了好几年现在都忘得差不都了,前段时间想手动添加一个邮箱都忘记怎么添加了。遂简单记录一下整个搭建流程。
原理
原理见图,大致就是Postfix
提供SMTP
协议(端口25,465)接受邮件,然后通过SMTPD
和LMTP
协议在服务器内部将邮件送到Dovecot
维护的信箱。Dovecot 通过POP3
协议或IMAP
协议(端口143,993)向外提供查看信件的服务。
软件安装
软件安装这块就不多说了,忘得差不多了,缺什么的补装上什么就行。
用mariadb
代替mysql
。执行以下命令:
1 | apt update |
Postfix,dovecot 以及 opendkim 的安装:
1 | apt install opendkim |
另外注意防火墙的配置,需要开放几个端口。993 465 25
配置Postfix服务器
设置邮件安全
这些部分网上写得挺多:
- https://blog.csdn.net/weixin_39941262/article/details/110808694
- https://blog.csdn.net/newtypeofc/article/details/132612851
- 虚拟域 虚拟用户
好麻烦懒得写了
dovecot的一个设置
在/etc/dovecot/conf.d/auth-sql.conf.ext
里:
1 | passdb { |
在/etc/dovecot/dovecot-sql.conf.ext
里:
1 | driver = mysql |
添加用户时,对应的SQL应该为:
1 | INSERT INTO virtual_users (email, password) VALUES ('new_mail', ENCRYPT('your_password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16)))); |
openssl + nc 测试邮件收发
配置好之后如果出问题,用nc和openssl可以找找哪里出错了。可以用nc检查一下端口开放没有。
首先进行连接:
1 | # 二选一: |
连接上之后:(注意base64加密时不要带上回车,也就是说echo -n 'text'|base64
需要带上-n
参数)
1 | EHLO example.com |
可以向chatgpt询问这些协议的具体格式。
检测工具
关于邮件服务器搭建的杂七杂八