动手实践
[减少遗忘] Mailx+Crontab定时提醒
00 min
Jul 20, 2024
Jul 20, 2024
type
status
date
slug
summary
tags
category
icon
password

前言


习惯的养成是主动和被动共同的硕果,但完全依赖习惯,也会增加大脑的负担。这几天往往因为其他的事情,而忘记上下班打卡。为此,基于之前的经验,重新在瓦工上部署了mailx+posfix,并且通过cron脚本定时提醒,以下是操作的步骤。

正文


最初我的目的是搭建一个web邮箱服务,但后面考虑到复杂程度和需求,最终决定先使用Postfix + Dovecot,
简介:Postfix是一个流行的邮件传输代理,Dovecot是一个IMAP/POP3服务器。结合使用可以搭建功能强大的邮件服务。特点:灵活性高,支持多种邮件协议,适合有一定技术基础的用户。
目前还没花时间研究Dovecot,所以这部分等有空的时候再去补充。

安装 Postfix 和 Dovecot


在基于 Debian 或 Ubuntu 的系统上,可以使用以下命令安装:
在安装过程中,会提示配置 Postfix,选择 "Internet Site",并输入你的域名。

配置 Postfix


编辑 Postfix 配置文件 /etc/postfix/main.cf,确保以下设置:
编辑 /etc/mailname 文件
在文件中输入你的域名,例如:
重启postfix
替换发件人名称,创建或编辑 /etc/postfix/sender_canonical 文件:
添加以下行:
运行以下命令以生成 Postfix 可使用的映射数据库:
确保在 /etc/postfix/main.cf 中添加或更新以下行:
在完成上述步骤后,重新加载 Postfix 以应用更改:

配置 DNS 记录


添加 MX 记录


  • 查找 MX 记录设置:在 DNS 管理页面,找到添加 MX 记录的选项。
  • 输入信息
  • 主机名(Host):通常是 @(表示根域名)。
  • (Value):输入邮件服务器的完整域名(如 mail.yourdomain.com)。
  • 优先级(Priority):设置优先级,通常为 10(如果没有其他邮件服务器,可以使用这个值)。
  • 保存记录

    添加 A 记录


    • 查找 A 记录设置:在 DNS 管理页面,找到添加 A 记录的选项。
    • 输入信息
    • 主机名(Host):通常是 @(表示根域名)或 mail(如果你希望使用 mail.yourdomain.com)。
    • (Value):输入你的邮件服务器的 IP 地址。
    • TTL(生存时间):可以使用默认值或设置为 3600 秒(1 小时)。

    验证配置


    确保返回的结果与你设置的记录相符。

    安装mailx


    配置 mailx


    然后添加以下内容(根据你的邮件服务器设置进行调整):
    参考mailx通过smtp登录QQ邮箱发送邮件 - 知乎 (zhihu.com)因为需要 QQ 邮箱的 SSL 证书,所以我们还需要手动的获取QQ 邮箱的证书保存到本地指定的目录里以备调用和验证,具体命令如下:
    为了防止出现发送邮件警告提示,还需要进入邮箱 SSL 证书存放目录
    cd /root/.certs 里执行如下命令:
    返回如下提示即可:
    Notice: Trust flag u is set automatically if the private key is present.
    这是为了信任证书的标记操作

    发送测试邮件


    使用cron任务


    使用以下命令查看当前时区:timedatectl
    如果时区不正确,可以使用以下命令设置为上海时间:sudo timedatectl set-timezone Asia/Shanghai
    更改时区后,您可能需要重启 cron 服务以应用更改:sudo systemctl restart cron

    总结


    本文介绍了如何在服务器上搭建邮件服务,使用 Postfix 和 Dovecot 的组合,以实现定时提醒功能。首先,安装并配置 Postfix 和 Dovecot,设置正确的 DNS 记录以确保邮件服务器可用。接着,安装并配置 mailx,添加必要的 SMTP 信息和 SSL 证书以确保邮件安全发送。最后,通过 cron 设置每日提醒,帮助用户避免忘记上下班打卡,从而提升日常工作管理效率。

    Comments