導讀 | SSMTP 是一個非常簡單實用的小工具,它可以將 Linux 系統的電子郵件中繼到 Office 365、Google 或其它第三方 SMTP 服務器。SSMTP 並不是一套成熟完整的郵件服務器,它只能自動將郵件提交到其它像 Google、騰訊、163、Office 365 這樣的 SMTP 服務器。在本文中,我們將介紹如何配置 SSMTP 通過 Office 365 賬戶發送電子郵件。 |
在正式安裝和配置之前,我們先簡要介紹下 SSMTP 是如何工作的。SSMTP 可以被安裝到任意 Linux 系統當中,一旦配置完成,所有來自 root、nobody 或其它應用程序發送的郵件都可以通過 SSMTP 進行轉發。我們也可以配置 PHP、Python,、Ruby 等應用程序的郵件都使用該程序進行轉發。簡而言之,你可以將 SSMTP 理解為 Linux 中的 Mailhub。
在 Mailhub 中可以配置和指定 Gmail SMTP 服務器或 Microsof Office365 SMTP 服務器地址,一旦為其指定好服務器和電子郵件地址,它便可以直接通過雲服務發送郵件。
SSMTP 安裝非常簡單,很多 Linux 源中都有提供,基於 RHEL 的 Linux 發行版(RHEL/CentOS/Fedora)可以使用如下命令安裝:
yum install ssmtp
Ubuntu 和 Debian 服務器可以使用如下命令安裝:
sudo apt-get install ssmtp
安裝完成后所有配置文件都會寫入到/etc/ssmtp/目錄當中。
一般情況下,很多 Linux 發行版都使用 Sendmail 或 Postfix 作為默認了電子郵件系統,我們之所以使用 SSMTP 就是為了使用外部 SMTP 中繼,因此要將 SSMTP 配置為系統默認,首先就得停用 sendmail 或 postfix 服務。
systemctl stop sendmail systemctl stop postfix
如果你使用較早版本 Linux,可以使用如下命令停用服務:
service sendmail stop service postfix stop
注意:還需停止 sendmail 或 postfix 服務隨系統啟動哦,最好還是直接卸載掉吧。
使用 vim 或你喜歡的任意編輯器對 /etc/ssmtp/ssmtp.conf 文件進行編輯,我們以 Office 365 的 SMTP 服務器為例,如果你使用其它 SMTP 請自行按服務商的官方文檔進行修改:
root=admin@sysgeek.cn mailhub=smtp.office365.com:587 AuthUser=admin@sysgeek.cn AuthPass=XXXXX UseTLS=YES UseSTARTTLS=YES FromLineOverride=YES RewriteDomain:sysgeek.cn
配置文件修改並保存好之后我們就可以用上 Office 365 提供的可靠郵件服務了,現在先用如下命令先發個測試郵件來看看:
echo "This is a test e-mail" | mail -s "Test Email" XXXX@qq.com
如果你在發送測試郵件時遇到類似如下提示:
ssmtp: Cannot open mail.server.com:25
那是因為 ssmtp 默認會嘗試使用標准的 SMTP 25 端口去連接郵件服務器,如果你所使用的 SMTP 中繼像 Gmail 或 Office 365 這樣采用了 TLS 加密的非標准端口,還需要到 /etc/ssmtp/revaliases 配置文件中對發件人、服務器地址和端口進行指明:
免費提供最新Linux技術教程書籍,為開源技術愛好者努力做得更多更好:https://www.linuxprobe.com/