在Ubuntu 16.04上配置msmtp

系统 Linux
这篇文章是在我之前的博客中发表过的在 Ubuntu 16.04 上配置 MSMTP 的一个副本。我再次发表是为了后续,我并不知道它是否能在更高版本上工作。由于我没有再托管自己的 Ubuntu/MSMTP 服务器了,所以我现在看不到有需要更新的地方,但是如果我需要重新设置,我会创建一个更新的帖子!

[[224813]]

这篇文章是在我之前的博客中发表过的在 Ubuntu 16.04 上配置 MSMTP 的一个副本。我再次发表是为了后续,我并不知道它是否能在更高版本上工作。由于我没有再托管自己的 Ubuntu/MSMTP 服务器了,所以我现在看不到有需要更新的地方,但是如果我需要重新设置,我会创建一个更新的帖子!无论如何,这是我现有的。

我之前写了一篇在 Ubuntu 12.04 上配置 msmtp 的文章,但是正如我在之前的文章中暗示的那样,当我升级到 Ubuntu 16.04 后出现了一些问题。接下来的内容基本上是一样的,但 16.04 有一些小的更新。和以前一样,这里假定你使用 Apache 作为 Web 服务器,但是我相信如果你选择其他的 Web 服务器,也应该相差不多。

我使用 msmtp 发送来自这个博客的邮件俩通知我评论和更新等。这里我会记录如何配置它通过 Google Apps 帐户发送电子邮件,虽然这应该与标准的 Google 帐户一样。

首先,我们需要安装 3 个软件包:

  1. sudo apt-get install msmtp msmtp-mta ca-certificates

安装完成后,就需要一个默认配置。默认情况下,msmtp 会在 /etc/msmtprc 中查找,所以我使用 vim 创建了这个文件,尽管任何文本编辑器都可以做到这一点。这个文件看起来像这样:

  1. # Set defaults.
  2. defaults
  3. # Enable or disable TLS/SSL encryption.
  4. tls on
  5. tls_starttls on
  6. tls_trust_file /etc/ssl/certs/ca-certificates.crt
  7. # Setup WP account's settings.
  8. account GMAIL
  9. host smtp.gmail.com
  10. port 587
  11. auth login
  12. user YOUR USERNAME
  13. password YOUR PASSWORD
  14. from FROM@ADDRESS
  15. logfile /var/log/msmtp/msmtp.log
  16.  
  17. account default :

任何大写选项都是需要替换为你特定的配置。日志文件是一个例外,当然你也可以将活动/警告/错误放在任何你想要的地方。

文件保存后,我们将更新上述配置文件的权限 ,如果该文件的权限过于开放,msmtp 将不会运行,并且创建日志文件的目录。

  1. sudo mkdir /var/log/msmtp
  2. sudo chown -R www-data:adm /var/log/msmtp
  3. sudo chmod 0600 /etc/msmtprc

接下来,我选择为 msmtp 日志配置 logrotate,以确保日志文件不会太大并让日志目录更加整洁。为此,我们创建 /etc/logrotate.d/msmtp 并使用按以下内容配置。请注意,这是可选的,你可以选择不这样做,或者你可以选择以不同方式配置日志。

  1. /var/log/msmtp/*.log {
  2. rotate 12
  3. monthly
  4. compress
  5. missingok
  6. notifempty
  7. }
  8.  

现在配置了日志,我们需要通过编辑 /etc/php/7.0/apache2/php.ini 告诉 PHP 使用 msmtp,并将 sendmail 路径从

  1. sendmail_path =

变成

  1. sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -a -t"

这里我遇到了一个问题,即使我指定了帐户名称,但是当我测试它时,它并没有正确发送电子邮件。这就是为什么 account default : 这行被放在 msmtp 配置文件的末尾。要测试配置,请确保 PHP 文件已保存并运行 sudo service apache2 restart,然后运行 php -a 并执行以下命令

  1. mail ('personal@email.com', 'Test Subject', 'Test body text');
  2. exit();

此时发生的任何错误都将显示在输出中,因此错误诊断会相对容易。如果一切顺利,你现在应该可以使用 PHP sendmail(至少 WordPress 可以)中用 Gmail(或 Google Apps)从 Ubuntu 服务器发送电子邮件。

我没有说这是最安全的配置,所以当你看到并且意识要这个非常不安全,或者有其他严重的错误,请让我知道,我会相应地更新。 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2017-08-09 13:13:25

LinuxUbuntuZabbix

2017-08-02 15:15:55

UbuntuNoSQLOrientDB

2011-01-12 09:59:28

Ubuntu Serviptables

2011-05-24 09:33:40

UbuntuOpenStackNova

2016-09-30 13:48:25

UbuntuPython报警系统

2021-06-10 09:48:48

Ubuntu 16.0FreeRADIUSDaloradius

2018-02-25 11:03:00

LinuxUbuntuEncryptpad

2010-08-12 15:41:12

MySQL集群

2015-09-06 09:55:51

UbuntuHHVM

2018-02-23 14:50:30

2017-05-10 10:37:55

2010-07-13 09:46:09

TomcatUbuntu 10.0

2022-09-14 11:31:37

MySQL数据库管理系统

2011-01-21 17:43:13

2023-09-24 19:24:18

UbuntuVSCodium

2017-08-03 10:36:08

UbuntuCertbotNGINX

2017-06-02 14:30:51

UbuntuOTRSLinux

2015-10-10 13:39:21

Node JS配置Ubuntu

2014-05-30 10:08:06

2019-05-31 16:10:42

UbuntuLinuxBudgie桌面
点赞
收藏

51CTO技术栈公众号