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



























