如何在CentOS6上安装Postfix

来自菜鸟教程
跳转至:导航、​搜索

状态: 已弃用

本文介绍了不再受支持的 CentOS 版本。 如果您目前正在运行运行 CentOS 6 的服务器,我们强烈建议您升级或迁移到受支持的 CentOS 版本。

原因: CentOS 6 已于 2020 年 11 月 30 日结束生命周期 (EOL) and no longer receives security patches or updates. For this reason, this guide is no longer maintained.

请参阅:
本指南可能仍可用作参考,但可能不适用于其他 CentOS 版本。 如果可用,我们强烈建议使用为您使用的 CentOS 版本编写的指南。


关于后缀

Postfix 是免费的开源邮件传输代理,用于路由和传递电子邮件。 Cyrus 是一个帮助组织邮件本身的服务器。

第一步——安装 Postfix 和 Cyrus

首先要做的是在您的虚拟专用服务器上安装 postfix 和 Cyrus,最简单的方法是通过 yum 安装程序。

sudo yum install postfix
sudo yum install cyrus-sasl
sudo yum install cyrus-imapd

每次询问时对提示说是。 下载所有组件后,您将安装 postfix 和 cyrus。

第二步——配置 Postfix

我们将分别配置这两个程序。

首先,打开 Postfix 的主配置文件。

sudo vi /etc/postfix/main.cf

postfix 配置文件非常方便和详细,提供了在您的 VPS 上启动和运行程序所需的几乎所有信息。 不幸的是,这也会导致文件很长。

在大多数情况下,以下建议的代码只是文件中已有内容的缩短且正确未注释的版本。 要进行快速设置,为您提供设置 postfix 所需的所有配置,请将以下信息复制并粘贴到 Postfix 的当前配置上。 请注意更正 myhostname 和 my domain 下的域名。

将 myhostname 行中的 example.com 替换为 DNS 批准的域名。 确保该短语仍然是 mail.yourdomainnamehere

将 mydomain 行中的 example.com 替换为正确的域名。

soft_bounce             = no
queue_directory         = /var/spool/postfix
command_directory       = /usr/sbin
daemon_directory        = /usr/libexec/postfix
mail_owner              = postfix

# The default_privs parameter specifies the default rights used by
# the local delivery agent for delivery to external file or command.
# These rights are used in the absence of a recipient user context.
# DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
#
#default_privs = nobody

myhostname              = mail.example.com 
mydomain                = example.com

mydestination           = $myhostname, localhost
unknown_local_recipient_reject_code = 550

mynetworks_style        = host
mailbox_transport       = lmtp:unix:/var/lib/imap/socket/lmtp
local_destination_recipient_limit       = 300
local_destination_concurrency_limit     = 5
recipient_delimiter=+

virtual_alias_maps      = hash:/etc/postfix/virtual

header_checks           = regexp:/etc/postfix/header_checks
mime_header_checks      = pcre:/etc/postfix/body_checks
smtpd_banner            = $myhostname

debug_peer_level        = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/bin:/usr/X11R6/bin
         xxgdb $daemon_directory/$process_name $process_id & sleep 5

sendmail_path           = /usr/sbin/sendmail.postfix
newaliases_path         = /usr/bin/newaliases.postfix
mailq_path              = /usr/bin/mailq.postfix
setgid_group            = postdrop
html_directory          = no
manpage_directory       = /usr/share/man
sample_directory        = /usr/share/doc/postfix-2.3.3/samples
readme_directory        = /usr/share/doc/postfix-2.3.3/README_FILES

smtpd_sasl_auth_enable          = yes
smtpd_sasl_application_name     = smtpd
smtpd_recipient_restrictions    = permit_sasl_authenticated,
                                  permit_mynetworks,
                                  reject_unauth_destination,
                                  reject_invalid_hostname,
                                  reject_non_fqdn_hostname,
                                  reject_non_fqdn_sender,
                                  reject_non_fqdn_recipient,
                                  reject_unknown_sender_domain,
                                  reject_unknown_recipient_domain,
                                  reject_unauth_pipelining,
                                  reject_rbl_client zen.spamhaus.org,
                                  reject_rbl_client bl.spamcop.net,
                                  reject_rbl_client dnsbl.njabl.org,
                                  reject_rbl_client dnsbl.sorbs.net,
                                  permit

smtpd_sasl_security_options     = noanonymous
smtpd_sasl_local_domain         = 
broken_sasl_auth_clients        = yes

smtpd_helo_required             = yes 

第三步——完成 Postfix

粘贴正确的配置后,我们几乎完成了在虚拟服务器上设置后缀。

为了防止任何错误,我们需要再执行两个步骤

在配置中,我们在行中包含了虚拟别名, virtual_alias_maps = hash:/etc/postfix/virtual; 现在我们必须建立那个数据库。

打开那个文件:

sudo vi /etc/postfix/virtual

删除文件中的所有文本,然后添加以下单行,将实际用户名替换为 user,以及正确的域,例如 example.com:

user@example.com   user\@example.com

保存并退出。

通过在终端中输入此内容进行跟进

postmap /etc/postfix/virtual 

这会将虚拟文件转换为查找表,创建 postfix 工作所需的数据库。

最后使用这个命令结束,它将在发送任何东西之前创建 postfix 期望的新文件。

touch /etc/postfix/body_checks 

完成所有这些后,我们可以通过配置 Cyrus 来完成。

第四步——配置 Cyrus

第一步是将定义 Postfix/SASL 身份验证的 smtpd.conf 文件添加到 SASL 目录:

sudo vi /etc/sasl2/smtpd.conf

继续复制并粘贴以下文本:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 

保存并退出。

接下来,我们需要配置 Cyrus 文件:

sudo vi /etc/imapd.conf

删除当前文件中的内容,并将以下配置粘贴到文件中,更改默认域和服务器名称以匹配您的个人域名。

virtdomains:       userid
defaultdomain:      example.com
servername:     example.com
configdirectory:    /var/lib/imap
partition-default:  /var/spool/imap
admins:         cyrus
sievedir:       /var/lib/imap/sieve
sendmail:       /usr/sbin/sendmail.postfix
hashimapspool:      true
allowanonymouslogin:    no
allowplaintext:     yes
sasl_pwcheck_method:    auxprop
sasl_mech_list:     CRAM-MD5 DIGEST-MD5 PLAIN
tls_cert_file:      /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file:       /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_ca_file:        /etc/pki/tls/certs/ca-bundle.crt

autocreatequota:        -1
createonpost:           yes
autocreateinboxfolders:     spam
autosubscribeinboxfolders:  spam 

保存并退出。

第五步——安装邮件客户端

成功! 你已经在你的 VPS 上安装了 Postfix 和 Cyrus。 但是,这两个程序都与处理电子邮件有关,而不是发送电子邮件。 我们可以快速安装一个从命令行发送消息的方法。

我们可以使用多种客户端——在这里我们将连接 MailX

yum install mailx

在您同意提示后,mailx 将完成安装。

然后,要发送电子邮件,请在终端中键入此命令,替换您要发送消息的电子邮件。

mail user@example.org

终端将要求提供主题行。 输入一个,然后按回车键。 在随后的行中,您可以键入您的消息。 它只会在您按下回车键并输入句点时发送。

你的信看起来像这样:

[root@demoserver ~]# mail user@example.org
Subject: Hello
This is a test message.
Regards,

.
EOT 

恭喜——现在你已经安装了 postfix 并且正在运行电子邮件。 您已准备好使用您的虚拟专用服务器发送电子邮件。

埃特尔·斯维尔德洛夫