PUB:20151109 How to send email notifications using Gmail SMTP server on Linux

@cposture @martin2011qi
This commit is contained in:
wxy 2016-03-07 15:39:44 +08:00
parent 95892c50c5
commit 6a429bfe56

View File

@ -1,25 +1,25 @@
如何在 Linux 上使用 Gmail SMTP 服务器发送邮件通知
================================================================================
假定你想配置一个 Linux app,用于从你的服务器或桌面客户端发送邮件信息。邮件信息可能是部分的邮件简报、状态更新(如 [Cachet][1])、监控警报(如 [Monit][2])、磁盘时间(如 [RAID mdadm][3])等等。当你要建立自己的 [邮件发送服务器][4] 传递信息时 ,你可以依赖一个免费使用的公共 SMTP 服务器作为一个变通选项避免遭受维护之苦。
假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息。邮件信息可能是邮件简报、状态更新(如 [Cachet][1])、监控警报(如 [Monit][2])、磁盘时间(如 [RAID mdadm][3])等等。当你要建立自己的 [邮件发送服务器][4] 传递信息时 ,你可以替代使用一个免费的公共 SMTP 服务器,从而避免遭受维护之苦。
谷歌的 Gmail 服务就是最可靠的 **免费 SMTP 服务器** 之一。想要从 app 发送邮件通知,你仅需在 app 中添加 Gmail 的 SMTP 服务器地址和你的凭证即可。
谷歌的 Gmail 服务就是最可靠的 **免费 SMTP 服务器** 之一。想要从应用中发送邮件通知,你仅需在应用中添加 Gmail 的 SMTP 服务器地址和你的身份凭证即可。
选择 Gmail 的 SMTP 服务器的原因之一是各种各样恰当的限制,这些限制主要用于阻止那些经常滥用服务器来发送垃圾邮件和使用邮件营销的家伙。举个例子,你一次只能给至多 100 个地址发送信息,并且一天不能超过 500 个收件人。同样,如果你不想被标为垃圾邮件发送者,你就不能发送过多的不可投递的消息。当你达到任何一个限制,你的 Gmail 账户将被暂时的锁定一天。简而言之Gmail 的 SMTP 服务器对于你个人的使用是非常棒的,但不适合商业的批量邮件。
使用 Gmail 的 SMTP 服务器会遇到一些限制,这些限制主要用于阻止那些经常滥用服务器来发送垃圾邮件和使用邮件营销的家伙。举个例子,你一次只能给至多 100 个地址发送信息,并且一天不能超过 500 个收件人。同样,如果你不想被标为垃圾邮件发送者,你就不能发送过多的不可投递的邮件。当你达到任何一个限制,你的 Gmail 账户将被暂时的锁定一天。简而言之Gmail 的 SMTP 服务器对于你个人的使用是非常棒的,但不适合商业的批量邮件。
说了这么多,是时候向你们展示 **如何在 Linux 环境下使用 Gmail 的 SMTP 服务器** 了。
### Google Gmail SMTP 服务器设置 ###
如果你想要通过你的 app 使用 Gmail 的 SMTP 服务器发送邮件,请牢记接下来的详细说明。
如果你想要通过你的应用使用 Gmail 的 SMTP 服务器发送邮件,请牢记接下来的详细说明。
- **邮件发送服务器 SMTP 服务器)**: smtp.gmail.com
- **使用认证**: 是
- **使用安全连接**: 是
- **用户名**: 你的 Gmail 账户 ID (比如 "alice" 如果你的邮箱为 alice@gmail.com
- **用户名**: 你的 Gmail 账户 ID (比如 "alice" 如果你的邮箱为 alice@gmail.com
- **密码**: 你的 Gmail 密码
- **端口**: 587
确切的配置根据 app 会有所不同。在本教程的剩余部分,我将向你展示一些在 Linux 上使用 Gmail SMTP 服务器的应用示例。
确切的配置根据应用会有所不同。在本教程的剩余部分,我将向你展示一些在 Linux 上使用 Gmail SMTP 服务器的应用示例。
### 从命令行发送邮件 ###
@ -35,7 +35,7 @@
$ sudo yum install mutt
创建一个 mutt 配置文件(~/.muttrc并和下面一样在文件中指定 Gmail SMTP 服务器信息。将 <gmail-id> 替换成自己的 Gmail ID。注意该配置只是为了发送邮件而已而非接收邮件
创建一个 mutt 配置文件(~/.muttrc并和下面一样在文件中指定 Gmail SMTP 服务器信息。将 \<gmail-id> 替换成自己的 Gmail ID。注意该配置只是为了发送邮件而已而非接收邮件
$ vi ~/.muttrc
@ -46,7 +46,7 @@
set smtp_url = "smtp://<gmail-id>@smtp.gmail.com:587/"
set smtp_pass = "<gmail-password>"
一切就绪使用 mutt 发送一封邮件:
一切就绪使用 mutt 发送一封邮件:
$ echo "This is an email body." | mutt -s "This is an email subject" alice@yahoo.com
@ -60,7 +60,7 @@
### 当服务器重启时发送邮件通知 ###
如果你在 [虚拟专用服务器VPS][5] 上跑了些重要的网站,建议监控 VPS 的重启行为。作为一个更为实用的例子,让我们研究如何在你的 VPS 上为每一次重启事件建立邮件通知。这里假设你的 VPS 上使用的是 systemd并向你展示如何为自动邮件通知创建一个自定义的 systemd 启动服务。
如果你在 [虚拟专用服务器VPS][5] 上跑了些重要的网站,建议监控 VPS 的重启行为。作为一个更为实用的例子,让我们研究如何在你的 VPS 上为每一次重启事件建立邮件通知。这里假设你的 VPS 上使用的是 systemd并向你展示如何为自动邮件通知创建一个自定义的 systemd 启动服务。
首先创建下面的脚本 reboot_notify.sh用于负责邮件通知。
@ -108,9 +108,9 @@
### 通过服务器使用监控发送邮件通知 ###
作为最后一个例子,让我展示一个现实生活中的应用程序,[Monit][6],这是一款极其有用的服务器监控应用程序。它有全面的 [VPS][7] 监控能力(比如 CPU、内存、进程、文件系统和邮件通知功能。
作为最后一个例子,让我展示一个现实生活中的应用程序,[Monit][6],这是一款极其有用的服务器监控应用程序。它有全面的 [VPS][7] 监控能力(比如 CPU、内存、进程、文件系统和邮件通知功能。
如果你想要接收 VPS 上任何事件导致的且由 Monit 产生的邮件通知,你可以在 Monit 配置文件中添加以下 SMTP 信息。
如果你想要接收 VPS 上由 Monit 产生的任何事件的邮件通知,你可以在 Monit 配置文件中添加以下 SMTP 信息。
set mailserver smtp.gmail.com port 587
username "<your-gmail-ID>" password "<gmail-password>"
@ -134,7 +134,7 @@
### 总结 ###
如你所见,类似 Gmail 这样免费的 SMTP 服务器有着这么多不同的运用方式 。但再次重申,牢记免费的 SMTP 服务器不适用于商业用途,仅仅适用于个人项目。无论你正在任一款 app 中使用 Gmail SMTP 服务器,欢迎自由分享你的用例。
如你所见,类似 Gmail 这样免费的 SMTP 服务器有着这么多不同的运用方式 。但再次重申,牢记免费的 SMTP 服务器不适用于商业用途,仅仅适用于个人项目。无论你正在哪款应用中使用 Gmail SMTP 服务器,欢迎自由分享你的用例。
--------------------------------------------------------------------------------
@ -142,7 +142,7 @@ via: http://xmodulo.com/send-email-notifications-gmail-smtp-server-linux.html
作者:[Dan Nanni][a]
译者:[cposture](https://github.com/cposture)
校对:[martin2011qi](https://github.com/martin2011qi)
校对:[martin2011qi](https://github.com/martin2011qi), [wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出