歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> Linux 上使用 Gmail SMTP 服務器發送郵件通知

Linux 上使用 Gmail SMTP 服務器發送郵件通知

日期:2017/3/6 9:42:35   编辑:學習Linux

Linux 上使用 Gmail SMTP 服務器發送郵件通知


Linux 上使用 Gmail SMTP 服務器發送郵件通知


導讀假定你想配置一個 Linux 應用,用於從你的服務器或桌面客戶端發送郵件信息。郵件信息可能是郵件簡報、狀態更新(如 Cachet)、監控警報(如 Monit)、磁盤時間(如RAIDmdadm)等等。當你要建立自己的 郵件發送服務器 傳遞信息時 ,你可以替代使用一個免費的公共 SMTP 服務器,從而避免遭受維護之苦。

gmail
谷歌的 Gmail 服務就是最可靠的 免費 SMTP 服務器 之一。想要從應用中發送郵件通知,你僅需在應用中添加 Gmail 的 SMTP 服務器地址和你的身份憑證即可。

使用 Gmail 的 SMTP 服務器會遇到一些限制,這些限制主要用於阻止那些經常濫用服務器來發送垃圾郵件和使用郵件營銷的家伙。舉個例子,你一次只能給至多 100 個地址發送信息,並且一天不能超過 500 個收件人。同樣,如果你不想被標為垃圾郵件發送者,你就不能發送過多的不可投遞的郵件。當你達到任何一個限制,你的 Gmail 賬戶將被暫時的鎖定一天。簡而言之,Gmail 的 SMTP 服務器對於你個人的使用是非常棒的,但不適合商業的批量郵件。

說了這麼多,是時候向你們展示 如何在 Linux 環境下使用 Gmail 的 SMTP 服務器 了。

Google Gmail SMTP 服務器設置

如果你想要通過你的應用使用 Gmail 的 SMTP 服務器發送郵件,請牢記接下來的詳細說明。
郵件發送服務器 (SMTP 服務器):smtp.gmail.com
使用認證:是
使用安全連接:是
用戶名:你的 Gmail 賬戶 ID (比如 "alice" ,如果你的郵箱為 [email protected]
密碼:你的 Gmail 密碼
端口:587
確切的配置根據應用會有所不同。在本教程的剩余部分,我將向你展示一些在 Linux 上使用 Gmail SMTP 服務器的應用示例。

從命令行發送郵件

作為第一個例子,讓我們嘗試最基本的郵件功能:使用 Gmail SMTP 服務器從命令行發送一封郵件。為此,我將使用一個稱為 mutt 的命令行郵件客戶端。
先安裝 mutt:
對於 Debian-based 系統:

$ 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" [email protected]

想在一封郵件中添加附件,使用 "-a" 選項

$ echo "This is an email body." | mutt -s "This is an email subject" [email protected] -a ~/test_attachment.jpg

yahoomail
使用 Gmail SMTP 服務器意味著郵件將顯示是從你 Gmail 賬戶發出的。換句話說,收件人將視你的 Gmail 地址為發件人地址。如果你想要使用自己的域名作為郵件發送方,你需要使用 Gmail SMTP 轉發服務。

當服務器重啟時發送郵件通知

如果你在 虛擬專用服務器(VPS) 上跑了些重要的網站,建議監控 VPS 的重啟行為。作為一個更為實用的例子,讓我們研究如何在你的 VPS 上為每一次重啟事件建立郵件通知。這裡假設你的 VPS 上使用的是systemd,並向你展示如何為自動郵件通知創建一個自定義的 systemd 啟動服務。
首先創建下面的腳本 reboot_notify.sh,用於負責郵件通知。

$ sudo vi /usr/local/bin/reboot_notify.sh
#!/bin/shecho "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" [email protected]
$ 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 rebootedDefaultDependencies=noBefore=reboot.target[Service]Type=oneshotExecStart=/usr/local/bin/reboot_notify.sh[Install]WantedBy=reboot.target

在創建服務後,添加並啟動該服務。

$ sudo systemctl enable reboot-task$ sudo systemctl start reboot-task

從現在起,在每次 VPS 重啟時,你將會收到一封通知郵件。
yahoo2

通過服務器使用監控發送郵件通知

作為最後一個例子,讓我展示一個現實生活中的應用程序,Monit,這是一款極其有用的服務器監控應用程序。它帶有全面的 VPS 監控能力(比如 CPU、內存、進程、文件系統)和郵件通知功能。

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

set mailserver smtp.gmail.com port 587    username "" password ""    using tlsv12set 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 emailsset alert [email protected]

這是一個因為 CPU 負載超載而由 Monit 發送的郵件通知的例子。
yahoo3

總結

如你所見,類似 Gmail 這樣免費的 SMTP 服務器有著這麼多不同的運用方式 。但再次重申,請牢記免費的 SMTP 服務器不適用於商業用途,僅僅適用於個人項目。無論你正在哪款應用中使用 Gmail SMTP 服務器,歡迎自由分享你的用例。

原文轉載地址:http://www.linuxprobe.com

http://xxxxxx/Linuxjc/1134376.html TechArticle

Copyright © Linux教程網 All Rights Reserved