外观
配置邮件通知
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,其他端口一律用 STARTTLS | 465 或 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 并生成授权码,服务器地址和端口以服务商的帮助页为准。
保存、应用、测试
- 勾选已启动,填好上面的字段,点保存。
- 点页面顶部黄色提示条上的应用。这一步不能省:测试邮件用的是 Postfix 里已经生效的配置,没应用就测试,会因为配置还是旧的而失败。
- 回到这个页面,点测试(Test)。这个按钮只有勾选了已启动才可点。
- 界面会弹出提示:已尝试发送测试邮件,请检查邮箱,没收到的话看垃圾邮件夹,并检查系统日志里有没有 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 通知。 见通知扩展。
参考资料
- Notifications(官方文档),其中的事件列表有过时的部分,本篇以 OMV 8 源码为准
- 源码:通知设置页面、Postfix 的 Salt 状态