搭建邮件服务器

搭建邮件服务器,第1张

WindowsServer2003默认情况下是没有安装POP3和SMTP服务组件的,因此要手工添加。

1.安装POP3服务组件

以系统管理员身份登录WindowsServer2003系统。依次进入“控制面板→添加或删除程序→添加/删除Windows组件”,在弹出的“Windows组件向导”对话框中选中“电子邮件服务”选项,点击“详细信息”按钮,可以看到该选项包括两部分内容:POP3服务和POP3服务Web管理。为方便用户远程Web方式管理邮件服务器,建议选中“POP3服务Web管理”。

2.安装SMTP服务组件

选中“应用程序服务器”选项,点击“详细信息”按钮,接着在“Internet信息服务(IIS)”选项中查看详细信息,选中“SMTPService”选项,最后点击“确定”按钮。此外,如果用户需要对邮件服务器进行远程Web管理,一定要选中“万维网服务”中的“远程管理(HTML)”组件。完成以上设置后,点击“下一步”按钮,系统就开始安装配置POP3和SMTP服务了。

1.创建邮件域

点击“开始→管理工具→POP3服务”,弹出POP3服务控制台窗口。选中左栏中的POP3服务后,点击右栏中的“新域”,弹出“添加域”对话框,接着在“域名”栏中输入邮件服务器的域名,也就是邮件地址“@”后面的部分,如“ rtj.net ”,最后点击“确定”按钮。其中“ rtj.net ”为在Internet上注册的域名,并且该域名在DNS服务器中设置了MX邮件交换记录,解析到WindowsServer2003邮件服务器IP地址上。

2.创建用户邮箱

选中刚才新建的“rtj.net”域,在右栏中点击“添加邮箱”,弹出添加邮箱对话框,在“邮箱名”栏中输入邮件用户名,然后设置用户密码,最后点击“确定”按钮,完成邮箱的创建。

完成POP3服务器的配置后,就可开始配置SMTP服务器了。点击“开始→程序→管理工具→Internet信息服务(IIS)管理器”,在“IIS管理器”窗口中右键点击“默认SMTP虚拟服务器”选项,在弹出的菜单中选中“属性”,进入“默认SMTP虚拟服务器”窗口,切换到“常规”标签页,在“IP地址”下拉列表框中选中邮件服务器的IP地址即可。点击“确定”按钮,这样一个简单的邮件服务器就架设完成了。

完成以上设置后,用户就可以使用邮件客户端软件连接邮件服务器进行邮件收发工作了。在设置邮件客户端软件的SMTP和POP3服务器地址时,输入邮件服务器的域名“rtj.net”即可。

[root@iZ11uh778whZMaildir]#uname–a

[root@iZ11uh778whZMaildir]#cat/etc/issue

查看posfix的版本

[root@iZ11uh778whZMaildir]#postconfmail_version

一般是默认就安装了posfix的,如果没有暗转的话,是用yum-yinstallpostfix安装

[root@iZ11uh778whZMaildir]#yum-yinstallpostfix

查看默认的mta

[root@iZ11uh778whZMaildir]#alterna TI ves--displaymta

我们可以看到默认的mta就是postfix,也许是sendmail,如果不是postfix,则修改为postfix

[root@iZ11uh778whZMaildir]# alterna TI ves --config mta

There is1 program that provides ‘mta’。

Selec TI on Command

-----------------------------------------------

*+1 /usr/sbin/sendmail.postfix

Enter to keepthe current selec TI on[+], or type selection number: 1

Postfix的配置文件主要有:/etc/postfix/main.cf和/etc/postfix/master.cf

我们主要修改/etc/postfix/main.cf

[root@iZ11uh778whZ postfix]# vim /etc/postfix/ main.cf

将#myhostname =virtual.domain.tld前面的‘#’去掉,改为

myhostname = localhost //系统的主机名称

将#mydomain = domain.tld前面的‘#’去掉,改为

mydomain = 51cs8.com //email的地址,为可用的域名

将#myorigin = $mydomain前面的‘#’去掉,改为

myorigin = $mydomain //指定本地发送邮件中来源和传递显示的域名

将#inet_interfaces =localhost前的‘#’去掉,改为

inet_interfaces = all //设置网络接口以便Postfix能接收到邮件

将#mydestination = mydomain, localhost前面的‘#’去掉,改为

mydestination = mydomain, localhost,$mydomain //指定哪些邮件地址允许在本地发送邮件

将#local_recipient_maps = 前面的‘#’去掉,改为

local_recipient_maps =

将#mynetworks =168.100.189.0/28, 127.0.0.0/8前面的‘#’去掉,改为

mynetworks = 10.47.200.0/21, 127.0.0.0/8 //根据自己内网的实际情况写,指定受信任SMTP的列表,具体的说,受信任的SMTP客户端允许通过Postfix传递邮件

将#home_mailbox = Maildir前面的‘#’去掉,改为

home_mailbox = Maildir/ //设置邮箱路径与用户目录有关,也可以指定要使用的邮箱风格。

将#smtpd_banner = mail_name ($mail_version)前面的‘#’去掉,改为

smtpd_banner = $myhostname ESMTP unknow //不显示SMTP服务器的相关信息

在配置文件的最后追加如下内容:

#smtpd

smtpd_sasl_auth_enable = yes //使用smtp认证

broken_sasl_auth_clients = yes //让不支持RFC2554的smtpclient也可以跟postfix做交互。

smtpd_sasl_local_domain = $myhostname //指定SMTP认证的本地域名

smtpd_sasl_security_options = noanonymous //取消匿名登陆方式

smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated, reject_unauth_destination //设定邮件中有关收件人部分的限制

[root@localhost ~]#yum -y install cyrus*

因为我之前安装过,所提提示已经安装。

Cyrus-sasl的配置文件路径:/etc/sasl2/smtpd.conf

[root@iZ11uh778whZ postfix]# vim /etc/sasl2/smtpd.conf

在文件尾部追加

log_level: 3 //记录log的模式

saslauthd_path:/var/run/saslauthd/mux //设置一下smtp寻找cyrus-sasl的路径

下面是我/etc/sasl2/smtpd.conf的内容:

pwcheck_method: saslauthd

mech_list: plain login

log_level: 3

saslauthd_path: /var/run/saslauthd/mux

[root@iZ11uh778whZ postfix]# /etc/init.d/postfix restart

Shutting down postfix: [ OK ]

Starting postfix: [ OK ]

[root@iZ11uh778whZ postfix]# /etc/init.d/saslauthd restart

Stopping saslauthd: [ OK ]

Starting saslauthd: [ OK ]

[root@iZ11uh778whZ postfix]# /etc/init.d/cyrus-imapd restart

Shutting down cyrus-imapd: [ OK ]

Exporting cyrus-imapd databases: [ OK ]

Importing cyrus-imapd databases: [ OK ]

Starting cyrus-imapd: [ OK ]

查看smtp启动情况:

[root@iZ11uh778whZ postfix]# netstat -tpnl | grep 25

tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1714/master

查看imap启动情况:

[root@iZ11uh778whZ postfix]# netstat -tpnl | grep cyrus

tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 2687/cyrus-master

tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 2687/cyrus-master

tcp 0 0 0.0.0.0:4190 0.0.0.0:* LISTEN 2687/cyrus-master

tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 2687/cyrus-master

tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 2687/cyrus-master

[root@iZ11uh778whZ postfix]# chkconfig postfix on

[root@iZ11uh778whZ postfix]# chkconfigpostfix --list

postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@iZ11uh778whZ postfix]# chkconfig saslauthd on

[root@iZ11uh778whZ postfix]# chkconfigsaslauthd --list

saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@iZ11uh778whZ postfix]# chkconfig cyrus-imapd on

[root@iZ11uh778whZ postfix]# chkconfig cyrus-imapd--list

cyrus-imapd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

添加账号、密码 system | system

[root@iZ11uh778whZ postfix]# useradd system

[root@iZ11uh778whZ postfix]# passwd system

Changing password for user system.

New password:

BAD PASSWORD: it is based on a dictionaryword

BAD PASSWORD: is too simple

Retype new password:

passwd: all authentication tokens updatedsuccessfully.

测试是否可用

[root@iZ11uh778whZpostfix]# testsaslauthd -u system -p system

0: OK “Success.”

安装完cysus-imapd会自动产生一个管理账号cyrus,所属用户组是mail

[root@iZ11uh778whZ tank]# id cyrus

uid=76(cyrus) gid=12(mail)groups=12(mail),76(saslauth)

将账户system的所在组切换到mail组

[root@iZ11uh778whZ tank]# usermod -g 12 system

[root@iZ11uh778whZ tank]# id system

uid=502(system) gid=12(mail)groups=12(mail)

添加测试账号:

[root@iZ11uh778whZtank]# cyradm -u cyrus localhost --auth plain

效果截图

Sendmail :sendmail 是最古老的 MTA(Mail Transfer Agent,电子邮件系统)之一,最早它诞生的时候,Internet 还没有被标准化,当时主机之间使用的是 UUCP 技术来交换邮件。它被设计得比较灵活,便于配置和运行于各种类型的机器。

Qmail :qmail 是新生一代的 MTA 代表,它以速度快、体积小、易配置安装等特性而著称。作者 D.J.Bernstein 是一个数学教授,富有传奇色彩。他于 1995 年开发 qmail,1996 年发布 0.70 版,并使用了多种当时比较先进的 技术,包括 Maildir,与 sendmail 单个 binary 不同的模块化设计,权限分离,以及使用了大量由他编写的配套工具,如 daemontool,ucsip-tcp 等。qmai  迅速成为了 Internet 上最有名的  MTA,使用者众。

postfix :postfix  如今已经独树一帜,流水线、模块化的设计,兼顾了效率和功能。灵活的配置和扩展,使得配置 postfix 变得富有趣味。其主要的特点是速度快、稳定,而且配置/功能非常强大,并和 sendmail 类似,提供了与外部程序对接的 API/protocol。尤其是配置部分,postfix 另一个优势是至今依然保持活跃的开发工作,而且稳步发展,适合高流量大负载的系统,扩充能力较强。本实验也是基于 postfix 服务器软件来实现。

邮件服务器基本的工作原理

MUA(Mail User Agent):向外发送邮件,以及提供用户浏览与编写邮件的功能。

MTA(Mail Transfer Agent):(可以理解为 smtpd 服务器)帮忙将用户的邮件传递出去或接收进来。

MDA(Mail Delivery Agent):将接收下来的邮件存放到对应用户邮筒当中的程序。通过分析 MTA 所收到邮件的表头或内容,来判断此邮件是属于哪个用户,然后决定将此邮件投递给哪个用户的邮筒里。

MRA(Mail Retrieval Agent):通过 MRA 服务器提供的邮政服务协议(POP)来接收自己的邮件。

邮件中继:

SMTPD 要支持邮件路由功能,需要打开 Open Relay 开放式中继。

SMTPD 是根据收件人判断邮件是否需要中继,而且只给指定的客户端中继。

注:当 DNS 上存在多个 MX 记录的主机这时就是根据 DNS 的邮件级判断了。DNS 上定义的值越小,其优先级越高。辅助交换器接受到邮件并不能保存邮件。而是这个辅助交换器会等到主邮件交换器空闲的时候把代替它接受下来的邮件在转给主邮件交换器。所以任何邮件处理都是主邮件交换器处理的。所以我们实际情况下,如果有 2 台服务器做邮件交换器,性能比较高的应该为主的。

安装配置过程中,postfix 通过 Internet 发送和接收 email,并存储在用户邮箱里。同时客户也可以通过 IMAP 或者 POP3 恢复他们的邮件。其中的客户认证是通过  Courier Authdaemon 模块的。下图表示出了这个过程:

出现安装界面时,首先按下 <tab>键切换到确定,然后按下回车。

安装 postfix 的时候会问你安装的服务器类型,对于我们的需要,我们选择默认的 Internet Site,这是最符合我们的服务器类型,然后按下回车确认。

使用 vim 编辑配置文件:

大概在第 31 行,编辑 myhostname,修改为 myhostname = shiyanlou.com。

然后我们把 alias_map 参数修改为 alias_maps = hash:/etc/postfix/virtual,之后会讲解 virtual 里面填写什么。

之后设置 mynetworks 段落,它定义可以使用这台服务器的主机,我们这里就用默认的本地地址。你也可设置为其他地址。

编辑完成后按下 Esc 键,输入 :wq 保存退出。

此命令创建了一个用户 master,其中 -d 和 -m 选项用来为登录名 master 产生一个主目录 /usr/master(/usr 为默认的用户主目录所在的父目录)。

我们编写之前设置的  virtual  文件,这些邮箱地址是用来传送邮件的。

在这个文件里,我们将设置一个表,对应相关的邮件地址。

完成后保存关闭文件。

我们可以通过调用下面这个命令来实现我们的映射:

接着我们重启 postfix,完成我们的修改:

我们可以用 shiyanlou 这个账号给 master 这个账号发一封邮件。首先我们需要安装一个命令行收发邮件的软件 mailutils 。

写一封邮件

输入如下内容:

其中 -s 参数是指邮件的标题,<后面是将要发送的邮件内容从 hello.txt 中重定向。这个命令如果正确执行不会有输出。

然后我们切换到 master 用户,查看我们的邮件。

按下回车建可以查看邮件内容,输入 quit 即可退出邮箱。

Linux 邮件服务器原理介绍,编译安装 Postfix 实现本地的邮件服务

Ubuntu 服务器指南-邮件服务-Postfix

how-to-run-your-own-mail-server-with-mail-in-a-box-on-ubuntu-14-04


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/398179.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存