Linux 上使用 Gmail SMTP 服务器发送邮件通知_linux gmail

71 阅读1分钟

$ 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


![yahoomail](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/248b7419c2b04bd3be70499f33a161dc~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1771509290&x-signature=n4IPH7JAH0suLlLac1lLyiArPDY%3D)  
 使用 Gmail SMTP 服务器意味着邮件将显示是从你 Gmail 账户发出的。换句话说,收件人将视你的 Gmail 地址为发件人地址。如果你想要使用自己的域名作为邮件发送方,你需要使用 Gmail SMTP 转发服务。



**当服务器重启时发送邮件通知**

如果你在 虚拟专用服务器(VPS) 上跑了些重要的网站,建议监控 VPS 的重启行为。作为一个更为实用的例子,让我们研究如何在你的 VPS 上为每一次重启事件建立邮件通知。这里假设你的 VPS 上使用的是[systemd]( ),并向你展示如何为自动邮件通知创建一个自定义的 systemd 启动服务。  
 首先创建下面的脚本 reboot\_notify.sh,用于负责邮件通知。



$ 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 服务。



sudomkdirp/usr/local/lib/systemd/systemsudo 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]()enablereboottasksudo [systemctl]( ) enable reboot-task sudo systemctl start reboot-task


从现在起,在每次 VPS 重启时,你将会收到一封通知邮件。  
 ![yahoo2](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/76727d95de1c4bdfab59e75355ea8aa0~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1771509290&x-signature=Wu5ZkcjOt1LgSshj93ieIrKJYCM%3D)



**通过服务器使用监控发送邮件通知**

作为最后一个例子,让我展示一个现实生活中的应用程序,Monit,这是一款极其有用的服务器监控应用程序。它带有全面的 VPS 监控能力(比如 CPU、内存、进程、文件系统)和邮件通知功能。


如果你想要接收 VPS 上由 Monit 产生的任何事件的邮件通知,你可以在 Monit 配置文件中添加以下 SMTP 信息。



set mailserver smtp.gmail.com port 587 username "" password "" using tlsv12 set mail-format { from: @gmail.com subject: SERVICESERVICE EVENT at DATEonDATE on HOST message: Monit ACTIONACTION SERVICE EVENTatEVENT at DATE on HOST:HOST : DESCRIPTION. Yours sincerely, Monit }

the person who will receive notification emails

set alert alice@yahoo.com


这是一个因为 CPU 负载超载而由 Monit 发送的邮件通知的例子。  
 ![yahoo3](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/543841cb434e4e78baf69fe736bebb84~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDgwNDUxMTkwMTI=:q75.awebp?rk3s=f64ab15b&x-expires=1771509290&x-signature=FVEVtnlr54574E1h%2FWo85IsE4GU%3D)



**总结**

如你所见,类似 Gmail 这样免费的 SMTP 服务器有着这么多不同的运用方式 。但再次重申,请牢记免费的 SMTP 服务器不适用于商业用途,仅仅适用于个人项目。无论你正在哪款应用中使用 Gmail SMTP 服务器,欢迎自由分享你的用例。


  
 



 本文转载自:<http://www.linuxprobe.com/send-email-notifications-gmail-smtp-server-linux/>


免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:
<http://www.linuxprobe.com/>