全部博文(2759)
分类: LINUX
2016-04-27 03:33:03
原文地址:Linux 上使用 Gmail SMTP 服务器发送邮件通知 作者:刘遄
导读 | 假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息。邮件信息可能是邮件简报、状态更新(如 Cachet)、监控警报(如 Monit)、磁盘时间(如 RAID mdadm)等等。当你要建立自己的 邮件发送服务器 传递信息时 ,你可以替代使用一个免费的公共 SMTP 服务器,从而避免遭受维护之苦。 |
$ sudo apt-get install mutt对于 Red Hat based 系统:
$ sudo yum install mutt创建一个 mutt 配置文件(~/.muttrc),并和下面一样,在文件中指定 Gmail SMTP 服务器信息。将 替换成自己的 Gmail ID。注意该配置只是为了发送邮件而已(而非接收邮件)。
$ vi ~/.muttrc
set from = "@gmail.com" set realname = "Dan Nanni" set smtp_url = "smtp://@smtp.gmail.com:587/" set smtp_pass = ""一切就绪,使用 mutt 发送一封邮件:
$ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com想在一封邮件中添加附件,使用 "-a" 选项
$ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com -a ~/test_attachment.jpg
$ sudo vi /usr/local/bin/reboot_notify.sh
#!/bin/sh echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" alice@yahoo.com
$ sudo chmod +x /usr/local/bin/reboot_notify.sh在这个脚本中,我使用 "-F" 选项,用于指定系统级的 mutt 配置文件位置。因此不要忘了创建 /etc/muttrc 文件,并如前面描述的那样填入 Gmail SMTP 信息。 现在让我们创建如下一个自定义的 systemd 服务。
$ sudo mkdir -p /usr/local/lib/systemd/system $ sudo vi /usr/local/lib/systemd/system/reboot-task.service
[Unit] Description=Send a notification email when the server gets rebooted DefaultDependencies=no Before=reboot.target [Service] Type=oneshot ExecStart=/usr/local/bin/reboot_notify.sh [Install] WantedBy=reboot.target在创建服务后,添加并启动该服务。
$ sudo systemctl enable reboot-task $ sudo systemctl start reboot-task从现在起,在每次 VPS 重启时,你将会收到一封通知邮件。
set mailserver smtp.gmail.com port 587 username "" password "" using tlsv12 set mail-format { from: @gmail.com subject: $SERVICE $EVENT at $DATE on $HOST message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION. Yours sincerely, Monit } # the person who will receive notification emails set alert alice@yahoo.com这是一个因为 CPU 负载超载而由 Monit 发送的邮件通知的例子。
免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好: