如何在 Linux 上使用 Gmail SMTP 伺服器傳送郵件通知
假定你想配置一個 Linux 應用,用於從你的伺服器或桌面客戶端傳送郵件資訊。郵件資訊可能是郵件簡報、狀態更新(如 Cachet)、監控警報(如 Monit)、磁碟時間(如 RAID mdadm)等等。當你要建立自己的 郵件傳送伺服器 傳遞資訊時 ,你可以替代使用一個免費的公共 SMTP 伺服器,從而避免遭受維護之苦。
谷歌的 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" ,如果你的郵箱為 alice@gmail.com)
- 密碼: 你的 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> 替換成自己的 Gmail ID。注意該配置只是為了傳送郵件而已(而非接收郵件)。
$ vi ~/.muttrc
set from = "<gmail-id>@gmail.com"
set realname = "Dan Nanni"
set smtp_url = "smtp://<gmail-id>@smtp.gmail.com:587/"
set smtp_pass = "<gmail-password>"
一切就緒,使用 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
使用 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 服務。
$ 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 重啟時,你將會收到一封通知郵件。
透過伺服器使用監控傳送郵件通知
作為最後一個例子,讓我展示一個現實生活中的應用程式,Monit,這是一款極其有用的伺服器監控應用程式。它帶有全面的 VPS 監控能力(比如 CPU、記憶體、程式、檔案系統)和郵件通知功能。
如果你想要接收 VPS 上由 Monit 產生的任何事件的郵件通知,你可以在 Monit 配置檔案中新增以下 SMTP 資訊。
set mailserver smtp.gmail.com port 587
username "<your-gmail-ID>" password "<gmail-password>"
using tlsv12
set mail-format {
from: <your-gmail-ID>@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 傳送的郵件通知的例子。
總結
如你所見,類似 Gmail 這樣免費的 SMTP 伺服器有著這麼多不同的運用方式 。但再次重申,請牢記免費的 SMTP 伺服器不適用於商業用途,僅僅適用於個人專案。無論你正在哪款應用中使用 Gmail SMTP 伺服器,歡迎自由分享你的用例。
via: http://xmodulo.com/send-email-notifications-gmail-smtp-server-linux.html
作者:Dan Nanni 譯者:cposture 校對:martin2011qi, wxy
相關文章
- Linux 上使用 Gmail SMTP 伺服器傳送郵件通知LinuxAI伺服器
- gmail傳送郵件AI
- 配置mail使用SMTP傳送郵件AI
- Python使用SMTP傳送郵件Python
- 配置ActionMailer使用GMail傳送郵件AI
- Jmeter——SMTP Sampler傳送郵件JMeter
- Python SMTP傳送郵件Python
- 在Python如何使用SMTP傳送郵件Python
- mailx 或telnet 使用指定SMTP伺服器傳送郵件AI伺服器
- 利用UTL_SMTP傳送郵件
- ThinkPHP_phpmailer使用外部認證SMTP傳送郵件PHPAI
- SMTP協議解讀以及如何使用SMTP協議傳送電子郵件協議
- 使用Linux命令傳送郵件Linux
- python實現基於smtp傳送郵件Python
- SMTP操作使用詳解並透過python進行smtp郵件傳送示例Python
- WPForms和 WP Mail SMTP – 最好的WordPress SMTP郵件傳送外掛ORMAI
- 【python】用SMTP模組傳送帶附件的郵件Python
- rman備份指令碼 傳送郵件通知指令碼
- 使用phpmailer傳送郵件PHPAI
- 使用JavaMail傳送郵件JavaAI
- 使用nodemailer傳送郵件AI
- [linux]linux傳送郵件Linux
- 一次郵件傳送協議SMTP問題排查協議
- linux下用C編寫的基於smtp的郵件傳送程式Linux
- 一次性解決python smtp 傳送outlook郵件,163郵件,qq郵件等等.Python
- 使用python傳送郵件和接收郵件Python
- 郵件傳送
- 傳送郵件
- 軟體測試學習教程——Python SMTP傳送郵件Python
- 使用 smtplib 傳送郵件
- 如何使用Excel傳送郵件?Excel
- 使用python傳送郵件Python
- 使用C#傳送郵件C#
- linux formail 傳送html郵件LinuxORMAIHTML
- [Gmail] 介紹一個通過 Gmail IMAP 服務傳送郵件的配置坑點AI
- linux自動重起服務,併傳送郵件通知結果Linux
- 配置linux使用mail傳送郵件到163郵箱LinuxAI
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI