介绍
是一个邮件传输代理 (MTA),用来发送和接收电子邮件的应用程序。 在本教程中,我们将安装和配置Postfix,以便它可以用于仅由本地应用程序发送电子邮件 - 即安装在安装Postfix的同一服务器上的邮件。
你为什么要这样做?
如果您已经在使用第三方电子邮件提供程序发送和接收电子邮件,则不需要运行自己的邮件服务器。 但是,如果您管理已安装了需要发送电子邮件通知的应用程序的云服务器,则运行本地的仅发送SMTP服务器是使用第三方电子邮件服务提供商或运行完全成熟的SMTP服务器。
在本教程中,您将了解如何将Postfix安装和配置为仅发送SMTP服务器。
先决条件
要遵循本教程,您需要:
一个Ubuntu的16.04Droplet设置与Ubuntu的16.04初始设置指南 ,包括创建一个sudo的非root用户
一个有效的域名,如
example.com
,指向您的服务器。 您可以设置多达按照该主机名教程
请注意,您的服务器的主机名应与此域或子域相匹配。 您可以通过键入验证服务器的主机名hostname
在命令提示符下。 输出应该与您在创建Droplet时给出的名称相匹配。
第1步 - 安装Postfix
在此步骤中,您将了解如何安装Postfix。 安装Postfix和测试所需的电子邮件其他程序的最有效方式是安装mailutils
包。
首先,更新包数据库:
sudo apt-get update
最后,安装Postfix。 安装mailtuils
将安装Stapling以及运作需要Postfix的一些其他程序。
sudo apt install mailutils
接近安装过程的结束,您将看到一个窗口,看起来像下面的图像中的一个。 默认选项是互联网站点 。 这就是本教程推荐的选项,因此按TAB
,然后ENTER
。
之后,你会得到另一个窗口,就像下一个图像中的一个。 系统邮件名称应该是一样的,你分配给服务器,当你在创造它的名字。 如果它显示像一个子域subdomain.example.com
,改变它只是example.com
。 当您完成后,按TAB
,然后ENTER
。
安装成功完成后,继续执行第二步。
第2步 - 配置Postfix
在这一步,你会读到如何Stapling配置来处理请求只能从其所运行的服务器,也就是说,是从本地主机发送电子邮件。
要做到这一点,Postfix的需要进行配置为只监听loopback接口 ,该服务器用来内部交流的虚拟网络接口。 要进行更改,使用打开主Postfix的配置文件nano
或您喜爱的文本编辑器。
sudo nano /etc/postfix/main.cf
打开文件,向下滚动,直到看到以下部分。
. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
. . .
更改读取的行inet_interfaces = all
以inet_interfaces = loopback-only
。
. . .
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
. . .
你需要修改另一个指令是mydestination
,它是用来指定要通过传送域列表local_transport
邮件传递运输。 默认情况下,值类似于以下值:
/etc/postfix/main.cf. . .
mydestination = $myhostname, example.com, localhost.com, , localhost
. . .
该建议缺省的有关该方案在下面的代码块中给出,所以修改你的匹配:
/etc/postfix/main.cf. . .
mydestination = $myhostname, localhost.$mydomain, $mydomain
. . .
保存并关闭文件。
如果你在一台服务器上托管多个领域,其他领域也可以使用传递给Postfix的mydestination
指令。 但是,要以一种扩展的方式配置Postfix,并且不会出现这种设置的问题,则涉及超出本文范围的其他配置。
最后,重新启动Postfix。
sudo systemctl restart postfix
第3步 - 测试SMTP服务器
在这个步骤中,您将测试是否Stapling可以发送电子邮件到使用外部电子邮件帐户mail
命令,这是一部分mailutils
已安装在第1步包。
要发送测试电子邮件,请键入:
echo "This is the body of the email" | mail -s "This is the subject line" your_email_address
在执行您自己的测试时,您可以使用主体和主题行文本,或根据您的喜好更改它们。 然而,在地方your_email_address
,使用有效的电子邮件地址。 域部分可以gmail.com
, fastmail.com
, yahoo.com
,或者你使用任何其他电子邮件服务提供商。
现在检查您发送测试消息的电子邮件地址。 您应该在收件箱中看到该邮件。 如果没有,请检查您的垃圾邮件文件夹。
注意:在此配置,测试邮件发送的地址从域将是sammy @ example.com
,其中sammy是你的Linux用户名和域部分是服务器的主机名。 如果您更改用户名, 发件人地址也将发生变化。
第4步 - 转发系统邮件
我们要建立的就是转发,所以你会得到你的个人的,外部的电子邮件地址发送给root用户系统上的电子邮件。
要配置Postfix的使系统生成邮件将发送到您的电子邮件地址,你需要编辑/etc/aliases
的文件。
sudo nano /etc/aliases
Ubuntu 16.04的默认安装文件的完整内容如下:
# See man 5 aliases for format
postmaster: root
使用该设置,系统生成的电子邮件将发送到root用户。 您要做的是编辑它,以便这些电子邮件重新路由到您的电子邮件地址。 要完成此操作,请编辑文件,使其显示为:
/etc/aliases# See man 5 aliases for format
postmaster: root
root: your_email_address
替换your_email_address
与您的个人电子邮件地址。 完成后,保存并关闭文件。 要使更改生效,请运行以下命令:
sudo newaliases
您现在可以通过使用以下方式向root帐户发送电子邮件来测试其是否工作:
echo "This is the body of the email" | mail -s "This is the subject line" root
您应该在您的电子邮件地址收到电子邮件。 如果没有,请检查您的垃圾邮件文件夹。
结论
这是使用Postfix设置只发送电子邮件服务器所需要的。 您可能需要采取一些额外的步骤来保护您的域免受垃圾邮件制造者的攻击。
如果您的使用案例是从单一地址接收来自您的服务器的通知,则电子邮件被标记为垃圾邮件是一个主要问题,因为您可以将其列入白名单。 但是,如果您的使用案例是向潜在的网站用户发送电子邮件(如留言板注册的确认电子邮件),则您一定要设置SPF记录和DKIM,以便服务器的电子邮件更有可能被视为合法。
如何安装和使用Postfix的Debian的Wheezy配置DKIM虽然该物品为DebianWheezy写的,同样的步骤也适用于Ubuntu的16.04。
如果配置正确,这会使发送垃圾邮件的地址似乎来自您的域名很难。 执行这些额外的配置步骤也将使普通邮件提供商更有可能将您的服务器的电子邮件看作是合法的。