如何安装仅用于向管理员发送邮件的 postfix?

Ric*_*uez 4 configuration email postfix

我有一个在 Digital Ocean 上运行 Ubuntu 13.10 的 VPS。

我想安装postfix在服务器上,但我希望它能够在系统消息想要发送到 root 时仅将电子邮件发送到我的电子邮件地址。

现在我已postfix安装为local only. 这会将消息发送到/var/mail/root

相反,我希望我的消息发送到我的真实电子邮件 ( example@gmail.com),但我不想允许其他用户/站点发送电子邮件(例如来自 PHP 的mail())。

这可能吗?

Pie*_*ean 6

做这件事有很多种方法

使用 SSMTP:

您可以在此处找到详细的文章。(请考虑Zulakis在下面关于安全性的评论:我让ssmtp解决方案在这里供您参考,但更喜欢postfix解决方案)

安装ssmtp

sudo aptitude install ssmtp
Run Code Online (Sandbox Code Playgroud)

编辑配置文件:

sudo vim /etc/ssmtp/ssmtp.conf
Run Code Online (Sandbox Code Playgroud)

并使用您的 Gmail 帐户进行配置:

root=username@gmail.com
mailhub=smtp.gmail.com:587
hostname=username@gmail.com
UseSTARTTLS=YES
AuthUser=username
AuthPass=password
FromLineOverride=yes
Run Code Online (Sandbox Code Playgroud)

使用后缀

如果您想使用 postfix 安装,您可以将其配置为使用您的 gmail 帐户。您可以在此处找到详细的文章。

检查您是否拥有所有需要的依赖项

mailutils libsasl2-2 ca-certificates libsasl2-modules
Run Code Online (Sandbox Code Playgroud)

编辑 postfix 的配置:

sudo vim /etc/postfix/main.cf
Run Code Online (Sandbox Code Playgroud)

并使用您的 Gmail 帐户进行配置:

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
Run Code Online (Sandbox Code Playgroud)

使用您的密码创建文件:

vim /etc/postfix/sasl_passwd
Run Code Online (Sandbox Code Playgroud)

并添加以下几行

[smtp.gmail.com]:587    USERNAME@gmail.com:PASSWORD
Run Code Online (Sandbox Code Playgroud)

只允许 root

我不完全确定你的意思

我不想让其他用户/站点发送电子邮件(例如来自 PHP 的 mail())

但是为了阻止每个用户或每个域的邮件访问,您可以编辑以下文件:

vim /etc/mail/access
Run Code Online (Sandbox Code Playgroud)

并添加规则,例如:

To:a1@server.vikas.com        REJECT            # Reject a1 user from recieving mails
From:a1@server.vikas.com     REJECT           # Reject a1 user from sending mails
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。

  • 对于阅读此答案的每个人:ssmtp 不验证当前 debian、ubuntu 和 redhat 版本上远程服务器的 SSL/TLS 证书,也不验证证书的主机名。这是一个主要问题,因为这有效地使加密变得无用,并且您的密码以明文形式传输,任何人都可以嗅探它。ssmtp 至少自 2009 年以来就没有积极的发展。因此,如果您关心用于服务器外发电子邮件的电子邮件帐户的安全性,请不要使用 ssmtp,而应使用此处提出的 postfix 解决方案! (4认同)