在Ubuntu 16.04上配置msmtp
這篇文章是在我之前的博客中發(fā)表過的在 Ubuntu 16.04 上配置 MSMTP 的一個副本。我再次發(fā)表是為了后續(xù),我并不知道它是否能在更高版本上工作。由于我沒有再托管自己的 Ubuntu/MSMTP 服務(wù)器了,所以我現(xiàn)在看不到有需要更新的地方,但是如果我需要重新設(shè)置,我會創(chuàng)建一個更新的帖子!無論如何,這是我現(xiàn)有的。
我之前寫了一篇在 Ubuntu 12.04 上配置 msmtp 的文章,但是正如我在之前的文章中暗示的那樣,當(dāng)我升級到 Ubuntu 16.04 后出現(xiàn)了一些問題。接下來的內(nèi)容基本上是一樣的,但 16.04 有一些小的更新。和以前一樣,這里假定你使用 Apache 作為 Web 服務(wù)器,但是我相信如果你選擇其他的 Web 服務(wù)器,也應(yīng)該相差不多。
我使用 msmtp 發(fā)送來自這個博客的郵件倆通知我評論和更新等。這里我會記錄如何配置它通過 Google Apps 帳戶發(fā)送電子郵件,雖然這應(yīng)該與標(biāo)準(zhǔn)的 Google 帳戶一樣。
首先,我們需要安裝 3 個軟件包:
sudo apt-get install msmtp msmtp-mta ca-certificates
安裝完成后,就需要一個默認(rèn)配置。默認(rèn)情況下,msmtp 會在 /etc/msmtprc
中查找,所以我使用 vim
創(chuàng)建了這個文件,盡管任何文本編輯器都可以做到這一點(diǎn)。這個文件看起來像這樣:
# Set defaults.
defaults
# Enable or disable TLS/SSL encryption.
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
# Setup WP account's settings.
account GMAIL
host smtp.gmail.com
port 587
auth login
user YOUR USERNAME
password YOUR PASSWORD
from FROM@ADDRESS
logfile /var/log/msmtp/msmtp.log
account default :
任何大寫選項(xiàng)都是需要替換為你特定的配置。日志文件是一個例外,當(dāng)然你也可以將活動/警告/錯誤放在任何你想要的地方。
文件保存后,我們將更新上述配置文件的權(quán)限 ,如果該文件的權(quán)限過于開放,msmtp 將不會運(yùn)行,并且創(chuàng)建日志文件的目錄。
sudo mkdir /var/log/msmtp
sudo chown -R www-data:adm /var/log/msmtp
sudo chmod 0600 /etc/msmtprc
接下來,我選擇為 msmtp 日志配置 logrotate,以確保日志文件不會太大并讓日志目錄更加整潔。為此,我們創(chuàng)建 /etc/logrotate.d/msmtp
并使用按以下內(nèi)容配置。請注意,這是可選的,你可以選擇不這樣做,或者你可以選擇以不同方式配置日志。
/var/log/msmtp/*.log {
rotate 12
monthly
compress
missingok
notifempty
}
現(xiàn)在配置了日志,我們需要通過編輯 /etc/php/7.0/apache2/php.ini
告訴 PHP 使用 msmtp,并將 sendmail 路徑從
sendmail_path =
變成
sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -a -t"
這里我遇到了一個問題,即使我指定了帳戶名稱,但是當(dāng)我測試它時,它并沒有正確發(fā)送電子郵件。這就是為什么 account default :
這行被放在 msmtp 配置文件的末尾。要測試配置,請確保 PHP 文件已保存并運(yùn)行 sudo service apache2 restart
,然后運(yùn)行 php -a
并執(zhí)行以下命令
mail ('personal@email.com', 'Test Subject', 'Test body text');
exit();
此時發(fā)生的任何錯誤都將顯示在輸出中,因此錯誤診斷會相對容易。如果一切順利,你現(xiàn)在應(yīng)該可以使用 PHP sendmail(至少 WordPress 可以)中用 Gmail(或 Google Apps)從 Ubuntu 服務(wù)器發(fā)送電子郵件。
我沒有說這是最安全的配置,所以當(dāng)你看到并且意識要這個非常不安全,或者有其他嚴(yán)重的錯誤,請讓我知道,我會相應(yīng)地更新。