跳转到内容

配置邮件通知 ​

NAS 通常放在没人盯着的角落。硬盘开始出坏道、RAID 降级、文件系统快满了、有更新待装,OMV 只会通过邮件告诉你。做完这一篇,你会收到一封来自 OMV 的测试邮件,并且知道哪些事件会触发邮件。

这里只讲邮件。Telegram、微信、Bark 等第三方通知,见通知扩展。

开始之前 ​

  • 一个能发信的邮箱,以及它的 SMTP 信息:服务器地址、端口、加密方式、用户名、密码。多数邮箱服务商不允许用登录密码发信,要在邮箱设置里开启 SMTP,并生成「应用专用密码」或「授权码」,把它当作密码填进 OMV。具体怎么生成,以服务商的帮助页为准。
  • 不少运营商会封锁 25 端口的出站连接,用 465 或 587 更稳。
  • 系统时间要准,TLS 握手会检查证书有效期,见时间、时区与主机名。

OMV 的邮件由 Postfix 发送,Postfix 工作在「卫星模式」:本机的程序把邮件交给它,它再转交给你配置的 SMTP 服务器。设置页里的两个收件地址,都对应系统的 root 用户,所以监测、SMART、更新、计划任务发给 root 的邮件,都会送到这两个地址。

密码会明文保存在配置数据库里

OMV 把 SMTP 密码和其他设置一起存进配置数据库,是明文。官方文档要求:在论坛或 issue 里求助之前,先把这些值脱敏。建议用专门的发信账号,或者应用专用密码,不要用邮箱的主密码。

设置 SMTP ​

打开 系统 → 通知 → 设置(System → Notification → Settings)。

字段默认值说明
已启动(Enabled)关总开关。关掉时 OMV 不发任何邮件
SMTP 服务器(SMTP server)空发信服务器的地址,比如 smtp.mycorp.com。启用时必填
SMTP 端口(SMTP port)25提示里写着常见的是 25、465、587
加密模式(Encryption mode)无无、SSL/TLS、启用 TLS(STARTTLS)、自动
发送 Email(Sender email)空发件人地址。启用时必填
需要验证(Authentication required)关勾选后才能填下面两项
用户名(User name)、密码(Password)空勾选「需要验证」后必填
主要 Email(Primary email)空收件人,启用时必填
次要 Email(Secondary email)空可选,第二个收件人

端口和加密模式要配套。 按 OMV 生成 Postfix 配置的逻辑:

加密模式实际效果配合的端口
无不加密25
SSL/TLS连接一开始就加密(隐式 TLS)465
启用 TLS(STARTTLS)先明文握手,再升级为加密,升级失败就不发587
自动端口是 465 就用 SSL/TLS,其他端口一律用 STARTTLS465 或 587

选了 SSL/TLS 或 STARTTLS,OMV 要求加密必须成功,不会退回明文。不过它只要求加密,不校验对方证书,所以用自签名证书的内部邮件服务器也能发。

示例:Gmail ​

这是官方文档给出的设置。Gmail 只有在账号开启了两步验证后才能用,密码必须是 Google 的应用专用密码,在 Google 账号的「应用专用密码」页面生成:

字段填写
SMTP 服务器smtp.gmail.com
SMTP 端口587
加密模式STARTTLS
发送 Email<你的用户名>@gmail.com
需要验证勾选
用户名<你的用户名>@gmail.com
密码应用专用密码
主要 Email<你的用户名>@gmail.com

收件地址可以用别名,比如 <你的用户名>[email protected],方便在 Gmail 里按别名过滤。Google 在 2022-05-30 移除了「低安全性应用」选项,现在只能用应用专用密码。国内邮箱同理,一般要开启 SMTP 并生成授权码,服务器地址和端口以服务商的帮助页为准。

保存、应用、测试 ​

  1. 勾选已启动,填好上面的字段,点保存。
  2. 点页面顶部黄色提示条上的应用。这一步不能省:测试邮件用的是 Postfix 里已经生效的配置,没应用就测试,会因为配置还是旧的而失败。
  3. 回到这个页面,点测试(Test)。这个按钮只有勾选了已启动才可点。
  4. 界面会弹出提示:已尝试发送测试邮件,请检查邮箱,没收到的话看垃圾邮件夹,并检查系统日志里有没有 Postfix 的错误。

测试邮件的主题是 Test message from <主机名>,内容是一句由系统通知服务自动生成的话。主要和次要两个地址都会收到。

选择哪些事件发邮件 ​

打开 系统 → 通知 → 事件(System → Notification → Events),是一个带勾选框的列表,勾上的事件会发邮件。新装系统里,下面这些默认都是勾上的:

事件什么时候发
验证(Authentication)从浏览器登录,非授权用户使用 sudo,账户因多次登录失败被锁定
杂项(Miscellaneous)其他通知,包括内核报告块设备 I/O 错误时的警告(8.5.10 起,同一设备 5 分钟内最多一封)
更新管理(Update management)有待安装的更新,以及自动安装安全更新的结果
监测 - 进程(Monitoring - Processes)nginx、php-fpm、omv-engined 等关键进程出问题或被重启
监测 - 平均负载、CPU 使用量、内存使用量对应指标超过阈值
监测 - 文件系统(Monitoring - File systems)文件系统使用率过高,或挂载状态变化
S.M.A.R.T.硬盘属性变化、自检失败

装了插件会多出对应条目,比如 RAID 管理插件的 RAID 事件、UPS 插件的 UPS 事件。

怎么取舍:

  • 一定要留着:S.M.A.R.T.、文件系统、杂项(含 I/O 错误)、RAID(如果用了)。这些意味着数据有风险。
  • 建议留着:更新管理、验证。
  • 嫌吵可以关:CPU 使用量、平均负载、内存使用量。偶尔的高负载(比如在做校验或转码)会发邮件,邮件多了,真正重要的反而被淹没。

官方文档里还提到计划任务和 rsync 任务的邮件,在 OMV 8 里它们不在这个列表里。系统 → 计划任务 里每个任务有一个命令输出用 Email 发送(Send command output via email)选项,输出会发给执行该任务的用户,该用户没有设邮箱时发给兜底地址,见计划任务。

检查结果 ​

  • 点测试之后,几分钟内主要邮箱收到主题为 Test message from <主机名> 的邮件。

  • 在 OMV 的 shell 里,邮件队列是空的:

    sh
    # 在 OMV 的 shell 里执行
    mailq

    输出 Mail queue is empty,说明邮件都发出去了。队列里有东西,说明发送失败在重试。

常见问题 ​

点了测试,没有收到邮件。 先看垃圾邮件夹。再确认设置已经应用过。然后看日志:诊断 → 系统日志(Diagnostics → System Logs)里选 syslog,搜索 postfix,里面有拒绝的原因,也可以在 shell 里用 mailq 看有没有积压。

日志里是认证失败(535)。 用户名要填完整的邮箱地址,密码要用应用专用密码或授权码,不是登录密码。

日志里是连接超时或连接被拒。 端口和加密模式没配套,或者运营商封了端口。换 587 加 STARTTLS,或者 465 加 SSL/TLS。25 端口在很多网络里出不去。

测试按钮是灰的。 没勾已启动。

邮件被收件方当成垃圾邮件。 发件地址最好用和 SMTP 账号一致的地址。有些服务商会拒绝发件人与登录账号不一致的邮件。

想关掉所有邮件。 取消勾选已启动,保存并应用。关闭之后,OMV 里调用 sendmail 的脚本不会再卡住,这是 8.0 修复的问题。

想收 Telegram 或 Bark 通知。 见通知扩展。

参考资料 ​

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。