个人发卡系统、图床、宝塔通知都需要一个邮件服务器,学着搭建一下
更新软件源
在安装任何软件前最好都执行一下更新软件源
sudo apt-get upgrade
开放端口
注意要开放 25 端口,开放方法就不写了,一堆方法
开放之后使用以下命令查看一下 25 端口有没有被防火墙或主机商屏蔽
sudo nmap 主机IP
我使用的是 oracle 免费实例,下面的都配置好了,发不了邮件,查了一下发现被屏蔽了。。。据说阿里云的也被屏蔽了
上面 25 端口已经开放,下面虽然我打码了,但是并没有 25 端口
可以看到是有 25 端口,服务是 smtp
安装 mailutils
mailutils 里面就包含了 sendmail 和 postfix,当然你也可以只安装 postfix,postfix 包含 sendmail
自己也试过很多遍,安装步骤大致相同,区别就是安装 mailutils 可以使用 mail 和 sendmail 命令,安装 postfix 只能使用 sendmail 命令
sudo apt install mailutils
No configuration:表示不要做任何配置
Internet Site:表示直接使用本地 SMTP 服务器发送和接收邮件
Internet with smarthos: 表示使用本地 SMTP 服务器接收邮件,但发送邮件时不直接使用本地 SMTP 服务器,而是使用第三方 smart host 来转发邮件
Satellite system:表示邮件的发送和接收都是由第三方 smarthost 来完成
Local only:表示邮件只能在本机用户之间发送和接收
可以翻译一下,本地主机上的邮件地址为foo@example.org,则该选项的正确值为 example.org,没看太懂,但大致意思就是域名使用的是哪个,就填写主域名即可,点击 OK 之后,输入自己的主域名
我这里填的 sywdebug.com
然后就安装成功了,可以使用以下命令再次打开这个玩意重新配置
sudo dpkg-reconfigure postfix
查看安装
使用以下命令查看安装版本
sudo postconf mail_version
配置域名
解析一个域名到自己的服务器,记录类型为 A,例如
mail.sywdebug.com
解析@到刚解析的域名,记录类型为 MX,MX 值写 10
发 QQ 邮件测试
我这里用 QQ 邮箱做测试,如果使用 gmail 邮箱可能会遇到错误,如果在收件箱没找到就去垃圾箱找,垃圾箱也没有的话可以去/var/log/mail.log 查看日志
方法一:
sendmail 收件人邮箱 # sendmail 向自己的邮箱发送邮件
邮件内容 # 输入邮件内容
. # .表示结束并发送
方法二:
sendmail -F 发件人 -f 发件人邮箱前缀 -t 收件人邮箱
Subject:主题(不能使用中文)
邮件内容
.
方法三:
sendmail -t
From: 发件人邮箱前缀
To: 收件人邮箱
Subject: 主题(不能使用中文)
测试邮件内容
哈哈哈
.
方法四:
{ echo From: 发件人; echo To: 收件人邮箱; echo 邮件内容; } | sendmail -t
发 gmail 邮件配置
我在使用 gmail 邮箱测试时发生了错误,在Gmail SMTP 错误和代码可以找到所有关于 Gmail SMTP 的错误
said: 550-5.7.26 This message does not have authentication information or fails to 550-5.7.26 pass authentication checks. To best protect our users from spam, the 550-5.7.26 message has been blocked. Please visit 550-5.7.26 https://support.google.com/mail/answer/81126#authentication for more 550 5.7.26 information. i7-20020a170902c94700b00155d59481eesi12099890pla.88 - gsmtp (in reply to end of DATA command))
看了一下大致的方法,要设置 SPF 和 DKIM,然后再设置 DMARC 巴拉巴拉的我也不懂,只知道 SPF 是解析域名,然后解析一下,记录值参考 google 的定义 SPF 记录:基本设置
设置好后可以在Google 管理员工具箱检查
我这还是有一堆问题,上面那些红色的就不管了,看了下好像要购买 google 的服务,资深白嫖党表示拒绝
下面的 DKIM、DMARC 和 Google 邮件交换器看着也有点麻烦又难懂
索性发了个邮件测试了一下
收到了,,但是在垃圾箱,估计把上面那些配置好就不会在垃圾箱了
修改 postfix 配置文件(感觉配不配置好像没区别)
postfix 配置文件为 /etc/postfix/main.cf
myhostname 的值为真实指向的域名,例如
myhostname = mail.sywdebug.com
添加一行 mydomain 指向自己的主域名,例如
mydomain = sywdebug.com
myorigin,mydestination 可以指向$mydomain
mydestination 本身有很多值,可以把最前面的$myhostname 改成$mydomain
myorigin = $mydomain
mydestination = $mydomain
然后使用下面命令重载配置
systemctl reload postfix
写在最后
邮件是可以发了,但是配置还不是太熟悉,一般发邮件可能都是使用后端语言进行发送,在前面提到的各种需要配置邮件发送的地方,因为要 smtp 密码,但是使用用户的密码也不对,因此不知道怎么填写,后来偶然发现之前别人配置发送邮件的是直接使用网易的或者 QQ 的,我在 freenom 自动续期脚本上还用过,,索性不搞了,直接使用 QQ 的 smtp 服务,可以参考什么是授权码,它又是如何设置?,使用比较简单,例如我使用 QQ 的发送邮件直接这么填上就行
参考
Ubuntu 安装邮件服务器3 分钟安装配置 Postfix 邮件服务器安装和配置 PostfixGNU Mailutils