介绍
Postfix是一个MTA(邮件传输代理),用于发送和接收电子邮件的应用程序。 在本教程中,我们将安装和配置Postfix,以便它可以用于仅由本地应用程序发送电子邮件 - 即安装在安装Postfix的同一服务器上的邮件。
你为什么要这样做?
如果您已经在使用第三方电子邮件提供程序发送和接收电子邮件,当然,您不需要运行自己的邮件服务器。 但是,如果您管理已安装了需要发送电子邮件通知的应用程序的云服务器,则运行本地的仅发送SMTP服务器是使用第三方电子邮件服务提供商或运行完全成熟的SMTP服务器。
发送电子邮件通知的应用的一个例子是OSSEC,将发送电子邮件警报配置的任何电子邮件地址(请参阅如何安装和在Ubuntu 14.04配置OSSEC安全通知 )。 虽然OSSEC或任何其他类型的应用程序可以使用第三方电子邮件提供商的SMTP服务器发送电子邮件警报,但它也可以使用本地(仅发送)SMTP服务器。
这就是你将学习如何在本教程中:如何安装和配置Postfix作为只发送SMTP服务器。
注意:如果您的使用情况是在一个单一的地址接收来自服务器的通知,电子邮件被标记为垃圾邮件并不是一个显著的问题,因为你可以白名单它们。
如果您的使用情况是发送电子邮件给潜在的网站用户,例如确认电子邮件的留言板注册,你绝对应该做的第5步让你的服务器的电子邮件更可能被视为合法。 如果您仍然无法将伺服器的电子邮件标示为垃圾邮件,则必须自行进一步疑难排解。
先决条件
请完成以下先决条件。
- Ubuntu 14.04 Droplet
- 通过进入初始设置 。 这意味着你应该有一个标准用户帐户
sudo
权限 - 有一个有效的域名,如example.com,指着你的Droplet
- 您的服务器的主机名应与此域或子域相匹配。 您可以通过键入验证服务器的主机名
hostname
在命令提示符下。 它被创建时,例如example.com的输出应该与您给Droplet名
如果满足所有先决条件,则现在可以开始本教程的第一步。
第1步 - 安装Postfix
在此步骤中,您将了解如何安装Postfix。 安装Postfix和测试所需的电子邮件其他程序的最有效方式是安装mailutils
通过键入包:
sudo apt-get install mailutils
安装mailtuils也会导致Postfix安装,以及Postfix需要的一些其他程序的功能。 输入该命令后,您将看到类似以下内容的输出:
The following NEW packages will be installed:
guile-2.0-libs libgsasl7 libkyotocabinet16 libltdl7 liblzo2-2 libmailutils4 libmysqlclient18 libntlm0 libunistring0 mailutils mailutils-common mysql-common postfix ssl-cert
0 upgraded, 14 newly installed, 0 to remove and 3 not upgraded.
Need to get 5,481 kB of archives.
After this operation, 26.9 MB of additional disk space will be used.
Do you want to continue? [Y/n]
按ENTER键安装它们。 接近安装过程的结束,您将看到一个窗口,看起来像下面的图像中的一个。 默认选项是互联网站点 。 这是本教程的推荐选项,因此请按TAB,然后按ENTER。
之后,你会得到另一个窗口,就像下一个图像中的一个。 系统邮件名称应该是一样的,你分配到Droplet,当你在创造它的名字。 如果它显示像mars.example.com子域,将其更改为只example.com。 完成后,按TAB,然后按ENTER。
安装成功完成后,请继续执行第2步。
第2步 - 配置Postfix
在这一步,你会读到如何Stapling配置来处理请求只能从其所运行的服务器,也就是说,是从本地主机发送电子邮件。 要做到这一点,Postfix的需要进行配置为只监听loopback接口 ,该服务器用来内部交流的虚拟网络接口。 要进行更改,请使用nano编辑器打开主要的Postfix配置文件。
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
代替loopback-only
你也可以使用localhost
,使修改后的部分还可以读取:
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = localhost
完成编辑文件后,保存并关闭它(按CTRL + X,然后按Y,然后按ENTER)。 之后,通过键入以下命令重新启动Postfix:
sudo service postfix restart
第3步 - 测试SMTP服务器可以发送电子邮件
在此步骤中,您将了解如何测试Postfix是否可以向任何外部电子邮件帐户发送电子邮件。 您将使用的mail
命令,这是一部分mailutils
已安装在第1步包。
要发送测试电子邮件,请键入:
echo "This is the body of the email" | mail -s "This is the subject line" user@example.com
在执行您自己的测试时,您可以使用主体和主题行文本,或根据您的喜好更改它们。 然而,在地方user@example.com ,使用有效的电子邮件地址,所在的域部分可以gmail.com,fastmail.com,yahoo.com,或者你使用任何其他电子邮件服务提供商。
现在检查您发送测试消息的电子邮件地址。
您应该在收件箱中看到该邮件。 如果没有,请检查您的垃圾邮件文件夹。
注:与本配置,测试邮件发送的地址从现场将sammy@example.com ,其中sammy是你的Linux用户名和域部分是服务器的主机名。 如果您更改用户名, 发件人地址也将发生变化。
第4步 - 转发系统邮件
我们要建立的就是转发,这样你会得到你的个人的,外部的电子邮件地址发送给root用户系统上的电子邮件。
要配置Postfix的使系统生成邮件将发送到您的电子邮件地址,你需要编辑/etc/aliases
的文件。
sudo nano /etc/aliases
Ubuntu 14.04的默认安装文件的完整内容显示在此代码块中:
# See man 5 aliases for format
postmaster: root
使用该设置,系统生成的电子邮件将发送到root用户。 您要做的是编辑它,以便这些电子邮件重新路由到您的电子邮件地址。 要完成此操作,请编辑文件,使其显示为:
# See man 5 aliases for format
postmaster: root
root: sammy@example.com
替换sammy@example.com与您的个人电子邮件地址。 完成后,保存并关闭文件。 要使更改生效,请运行以下命令:
sudo newaliases
您现在可以通过使用以下方式向root帐户发送电子邮件来测试其是否工作:
echo "This is the body of the email" | mail -s "This is the subject line" root
您应该在您的电子邮件地址收到电子邮件。 如果没有,请检查您的垃圾邮件文件夹。
(可选)第5步 - 保护您的域免受垃圾邮件发送者的攻击
在此步骤中,您将获得文章链接,以帮助您保护您的域免于被垃圾邮件使用。 这是一个可选的但强烈推荐的步骤,因为如果配置正确,这会使发送垃圾邮件的地址似乎来自您的域名很难。
执行这些额外的配置步骤也会使常见邮件提供商更有可能将您服务器上的电子邮件视为合法邮件,而不是将其标记为垃圾邮件。
- 如何使用SPF记录来防止欺骗和提高电子邮件的可靠性
- 如何在Debian Wheezy上使用Postfix安装和配置DKIM
- 此外,确保服务器的PTR记录与邮件服务器发送邮件时使用的主机名相匹配。 在DigitalOcean上,您可以通过更改控制面板中的Droplet名称来更改PTR记录
虽然第二篇文章是为Debian Wheezy编写的,但同样的步骤适用于Ubuntu 14.04。