Linux邮件服务:从Sendmail到Postfix的全面指南
立即解锁
发布时间: 2025-08-25 00:09:16 阅读量: 2 订阅数: 8 

### Linux邮件服务:从Sendmail到Postfix的全面指南
在当今数字化的时代,邮件服务是企业和个人日常沟通中不可或缺的一部分。在Linux系统中,有多种邮件传输代理(MTA)可供选择,其中Sendmail和Postfix是较为常用的两种。本文将详细介绍Linux邮件服务中的一些关键概念和工具,包括mailertable文件、Postfix邮件服务器的安装、配置和使用,以及不同邮箱格式的特点。
#### 1. mailertable文件
mailertable文件的主要作用是让Sendmail接受邮件并将其转发到另一个MTA,常用于提供备份邮件服务。它与virtusertable文件有相似之处,但也有明显区别。virtusertable用于将邮件从一个域名接收后发送给新的收件人,会重写邮件的目的地;而mailertable只是简单地转发邮件,不会重写目的地。
mailertable文件的条目语法如下:
```plaintext
target_domain new_mta_type:new_mta_host
```
其中,`target_domain` 是要接受的邮件的域名,`new_mta_type` 是新MTA的类型,`new_mta_host` 是MTA所在的主机名。`new_mta_type` 可以是 `esmtp`、`smtp` 或 `error`。`esmtp` 用于支持扩展SMTP的MTA,发送邮件速度更快,如Postfix和qmail;`smtp` 用于不支持扩展SMTP的MTA;`error` 则会向发件人返回错误消息。
以下是一个mailertable文件的示例:
```plaintext
tl28.example.com esmtp:tl29.example.org
nonexistent.example.net error:This is not a valid domain.
```
第一行将所有发往 `tl28.example.com` 域名的邮件转发到 `tl29.example.org` 这个MTA;第二行则会对发往 `nonexistent.example.net` 这个无效域名的邮件返回错误消息。
如果要将子域名的邮件转发到一个域名,可以在 `target_domain` 前加一个点,例如:
```plaintext
.tl28.example.com esmtp:tl29.example.org
```
这样,来自 `tl28.example.com` 子域名的邮件都会被转发到 `tl29.example.org` 域名。
#### 2. Postfix邮件服务器
Postfix是由Wietse Venema创建的,作为Sendmail的替代MTA。它可以发送和接收邮件,并且支持Sendmail使用的mbox格式。如果你从Sendmail迁移到Postfix,现有的mbox文件可以继续使用。
Postfix不仅与Sendmail兼容,还具有一些额外的特性。它支持maildir邮箱格式,这种格式将邮件存储在一组目录中,而不是像mbox那样存储在单个文件中。此外,Postfix还可以使用数据库,如Berkeley DB、LDAP和PostgreSQL来存储和管理邮件。
##### 2.1 安装Postfix
在CentOS系统中,Postfix不是默认安装的。要安装Postfix,需要以root用户身份运行以下命令:
```bash
yum install postfix
```
如果系统中正在运行Sendmail,需要先停止它,以释放SMTP默认使用的25端口:
```bash
service sendmail stop
```
然后启动Postfix:
```bash
service postfix start
```
##### 2.2 切换MTA
如果系统中同时安装了Sendmail和Postfix,可以使用CentOS的 `system-switch-mail` 命令和GNOME的Mail Transport Agent Switcher窗口来选择使用哪个MTA。要安装这两个工具,可以运行以下命令:
```bash
yum install system-switch-mail system-switch-mail-gnome
```
如果安装了GNOME桌面环境,可以通过点击系统菜单,选择“Administration” -> “Mail Transport Agent Switcher” 来打开切换窗口,选择“Postfix” 并点击“Ok” 即可使用Postfix发送邮件。
##### 2.3 使用Postfix发送邮件
在Postfix运行的系统上,可以使用任何邮件客户端发送邮件。例如,在终端中按照“使用Sendmail发送邮件”的步骤,发送内容为 “Postfix first email” 的邮件。然后打开 `/var/spool/mail` 目录下root用户的mbox文件,查看是否有包含该消息的邮件。
```plaintext
Third email
From [email protected] Fri Jul 3 13:31:19 2009
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
Received: from localhost.localdomain (localhost [127.0.0.1])
by localhost.localdomain (Postfix) with ESMTP id 24057705F9
for <[email protected]>; Fri, 3 Jul 2009 13:31:19 +0800 (PHT)
Received: (from root@localhost)
by localhost.localdomain (8.13.8/8.13.8/Submit) id n635VEIx012603
for root; Fri, 3 Jul 2009 13:31:14 +0800
Date: Fri, 3 Jul 2009 13:31:14 +0800
From: root <[email protected]>
Message-Id: <[email protected]>
To: undisclosed-recipients:;
Postfix first email
```
由于Postfix支持mbox作为默认邮箱格式,这有助于从Sendmail MTA平稳过渡到Postfix。也可以使用 `mail` 命令在命令行界面查看邮件。
##### 2.4 Postfix主配置文件
Postfix的主配置文件是 `/etc/postfix/main.cf`,其内容比Sendmail的主配置文件 `sendmail.cf` 更易于阅读。配置文件中的参数格式如下:
```plaintext
parameter_name = parameter_value
```
例如:
```plaintext
#myhostname = host.domain.tld
```
这里,参数名是 `myhostname`,赋值为 `host.domain.tld`。以 `#` 开头的行是注释,Postfix会忽略这些行。
要使Postfix准备好接受邮件并使用不同的方法存储邮件,需要对 `main.cf` 文件进行一些修改。假设邮件服务器计算机的主机名是 `mail`,位于 `pvctoyfan.com` 域名内,具体操作步骤如下:
1. 找到以下两行并修改:
```plaintext
#myho
```
0
0
复制全文
相关推荐










