当前位置:首页 > 行业动态 > 正文

如何在Linux系统上成功搭建SMTP服务器?

在linux上搭建smtp服务器,可以使用postfix或sendmail。以postfix为例,安装后配置主配置文件main.cf,设置myhostname, mydomain, myorigin等参数,然后启动并启用服务。

在Linux环境下搭建SMTP服务器,可以通过Postfix和Dovecot的组合来实现,以下是详细的步骤和配置说明:

硬件要求

CPU: 2C4T

内存: >= 4GB

硬盘规格: >= 10GB

操作系统: Linux kernel >= 3.1x

Postfix安装和配置

安装Postfix

apt -y install postfix sasl2-bin

选择Internet Site选项

在安装过程中,系统会提示选择服务类型,选择“Internet Site”,输入你的hostname并等待读取配置文件。

复制默认配置文件

cp /usr/share/postfix/main.cf.dist /etc/postfix/main.cf

修改默认配置

编辑/etc/postfix/main.cf文件,进行以下修改:

line 78: uncomment and specify mail_owner
mail_owner = postfix
line 94: uncomment and specify hostname
myhostname = yourdomain.com
line 102: uncomment and specify domainname
mydomain = yourdomain.com
line 123: uncomment
myorigin = $mydomain
line 137: uncomment
inet_interfaces = all
line 185: uncomment
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
line 228: uncomment
local_recipient_maps = unix:passwd.byname $alias_maps
line 270: uncomment
mynetworks_style = subnet
line 287: add your local network
mynetworks = 127.0.0.0/8
line 407: uncomment
alias_maps = hash:/etc/aliases
line 418: uncomment
alias_database = hash:/etc/aliases
line 440: uncomment
home_mailbox = Maildir/
line 576: comment out and add
#smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_banner = $myhostname ESMTP
line 650: add
sendmail_path = /usr/sbin/sendmail.postfix
line 655: add
newaliases_path = /usr/bin/newaliases
line 660: add
mailq_path = /usr/bin/mailq
line 666: add
setgid_group = postdrop
line 670: comment out
#html_directory = no
manpage_directory = no
sample_directory = no
readme_directory = no
add to the end: limit an email size 10M
message_size_limit = 10485760
limit mailbox 1G
mailbox_size_limit = 1073741824

使配置生效并重启服务

newaliases && systemctl restart postfix

Dovecot安装和配置

安装Dovecot及相关组件

apt -y install dovecot-core dovecot-pop3d dovecot-imapd

修改Dovecot配置文件

编辑/etc/dovecot/dovecot.conf文件:

line 30: uncomment
listen = *, ::

编辑/etc/dovecot/conf.d/10-auth.conf文件:

line 10: uncomment and change (allow plain text auth)
disable_plaintext_auth = no
line 100: add
auth_mechanisms = plain login

编辑/etc/dovecot/conf.d/10-mail.conf文件:

line 30: change to Maildir
mail_location = maildir:~/Maildir

编辑/etc/dovecot/conf.d/10-master.conf文件:

line 96-98: uncomment and add
unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
}

重启Dovecot服务

systemctl restart dovecot

添加访问账户

安装邮件客户端工具

apt -y install mailutils

创建用户并设置密码

adduser exampleuser
passwd exampleuser

配置DNS记录(SPF认证)

为了通过SPF认证,需要在DNS中添加TXT记录:

yourdomain.com. IN TXT "v=spf1 mx -all"

测试SMTP服务器是否正常使用

使用telnet命令连接到SMTP服务器的25端口,检查是否能够正常连接:

telnet yourdomain.com 25

如果一切正常,你应该能看到类似以下的输出:

Trying X.X.X.X... Connected to yourdomain.com. Escape character is '^]'.
220 yourdomain.com ESMTP Postfix (Ubuntu)

相关问答FAQs

1、Q: 如何更改Postfix的邮件大小限制?

A: 可以编辑/etc/postfix/main.cf文件,找到并修改以下两行:

     message_size_limit = 10485760 # 10MB
     mailbox_size_limit = 1073741824 # 1GB

修改后保存文件并重启Postfix服务即可。

2、Q: 如果无法连接到SMTP服务器,该怎么办?

A: 首先检查防火墙设置,确保25端口是开放的,可以使用以下命令检查:

     sudo nmap -p 25 yourdomain.com

如果端口未开放,请在防火墙中添加规则以允许25端口的流量,然后再次尝试连接,如果问题仍然存在,请检查Postfix日志文件/var/log/mail.log以获取更多信息。

0