如何在Linux系统上安装和配置邮件服务器?

  • Post category:Linux

下面是在Linux系统上安装和配置邮件服务器的完整攻略:

安装邮件服务器软件

Ubuntu/Debian系统:

sudo apt-get install postfix dovecot-core dovecot-imapd dovecot-pop3d

CentOS/RHEL系统:

sudo yum install postfix dovecot

配置Postfix

编辑Postfix的主配置文件/etc/postfix/main.cf:

sudo nano /etc/postfix/main.cf

设置以下参数:

myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)

其中,myhostname和mydomain设置为你的域名,myorigin设置为$mydomain,inet_interfaces设置为all表示监听所有接口,mydestination设置为邮件交换的目的地,mynetworks表示允许发送邮件的ip地址范围,smtpd_banner设置邮件服务器欢迎信息。

重启Postfix服务:

sudo systemctl restart postfix

配置Dovecot

编辑Dovecot的主配置文件/etc/dovecot/dovecot.conf:

sudo nano /etc/dovecot/dovecot.conf

设置以下参数:

protocols = imap pop3
disable_plaintext_auth = no
mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_privileged_group = mail
userdb {
  driver = passwd
}
passdb {
  driver = pam
}

其中,protocols设置支持的邮件协议,disable_plaintext_auth设置是否允许明文认证,mail_location设置邮件存储位置,userdb和passdb分别设置用户和密码验证驱动。

重启Dovecot服务:

sudo systemctl restart dovecot

添加用户

邮件服务器需要添加系统用户来存储用户的邮件。

sudo useradd -m john
sudo passwd john

配置邮件客户端

在邮件客户端中,添加邮件账户时需要设置如下参数:

  • 邮箱地址:john@example.com
  • 发送服务器(Outgoing Server):mail.example.com
  • 发送端口(SMTP Port):587
  • 加密方式(Encryption):STARTTLS
  • 接收服务器(Incoming Server):mail.example.com
  • 接收端口(IMAP Port/POP3 Port):993/995
  • 加密方式(Encryption):SSL/TLS
  • 用户名(Username):john
  • 密码(Password):****

示例

示例一:向本地用户发送邮件

假设我们要向本地用户john发送邮件,使用以下命令:

echo "Hello John!" | mail -s "Test mail" john

其中,echo指令后面的内容为邮件正文,-s指定邮件主题,john为收件人用户名。

示例二:使用Telnet进行SMTP服务测试

可以使用Telnet测试SMTP服务。首先连接SMTP端口:

telnet mail.example.com 587

然后按照SMTP协议步骤进行交互,例如发送邮件:

EHLO example.com
AUTH LOGIN
username
password
MAIL FROM:<sender@example.com>
RCPT TO:<recipient@example.com>
DATA
From: sender@example.com
To: recipient@example.com 
Subject: Test email

This is a test email.
.
QUIT

其中,EHLO表示向服务器打招呼,AUTH LOGIN表示使用认证方式登录,MAIL FROM和RCPT TO表示发送和接收的邮件地址,DATA表示开始发送邮件正文,以”.”结束。QUIT表示退出SMTP会话。