第10章 Postfix邮件系统(一)
Postfix
第 2 2卷 第 3期 2O 0 2年 6月
中 山 大 学 学 报 论 丛
S 丑 『 圈 S UN YA INⅣ nY DRI F d
V 1 2 No 3 0 .2 .
J n. 2 0 u 02
P s i 件 队 列 处 理 与 调 度 方 法 研 究 otx邮 f
Mal x i o :本 地 用 户 邮 箱 。 b 收信 :
lc 卜— oa
图 1 Ps x系 统 接 收 邮 件 程 序 结 构 ot i f
维普资讯
S p mt d:接 收 it t 的 邮件 转 递 。 ne me 上
A cs :提 供 s p服 务 所 需 的 客 户端 信 息和 D S信 息 。 ces mt N C n ncl v ta :提 供 地 址 转 换 信 息 。 ao i 和 iu l a r Icm n :待 发 送 的 邮 件 队列 。 no ig 传 递 邮 件 部 分 ( eieigMa ) Dl r i : v n l Q :p s L 核 心 部 分 ,它 与 lcl s t、pp m otx的 f oa、 m p ie打 交 道 ,实 现 不 同 地 址 不 同 性 质 邮
m i程 序 ,把 邮件 添 加 到 m i rp队 列 中 ;Mado :用 户 邮件 缓 冲 队列 ; al al o d i rp l
Pc u :从 malrp中 提 取 邮 件 ,提 交 给 c a u ; ik p i o d l n p e C en p l u :作 邮 件 完 整 性 的 检 查 。符 合 要 求 的插 入 D ig邮 件 队列 ,等 待 发 送 处 理 ; a 锄 I l R w i :c a u e r e l n p在 检 查 过 程 中 ,会 要 求 把 地 址 写 成 ue @fl . ̄m ie .d ma t e sr ul p lld o i 形 y f n的 式 ,rw i e re就 负 责 这 个 工 作 。 t B 1l :c a u of e l n p检 测 出 不 合 法 邮 件 后 ,该 程 序 发 邮递 失 败 信 息 给 发 信 人 。 .C e
Postfix文档(翻译)
一、基本配置介绍postfix的main.cf文件支持上百个配置参数。
幸运的是,所有的参数都有比较合理的默认值。
在大多数情况下,你只需要配置2到3个参数值就可以启用postfix邮件系统了。
下面的这个链接是postfix配置文件的简要介绍。
Postfix配置文件接下来的内容假设你已经安装好Postfix系统,不管你是通过源码编译安装还是使用已编译好的版本安装的。
这篇文档包括了postfix的基本配置。
关于如何把postfix配置成一个邮件中转器(mailhub)或邮件防火墙或拨号的客户端等特定的应用,请参见STANDARD_CONFIGURATION_README这个文件。
在你掌握以下的基本参数之前,暂时可以不用去了解 STANDARD_CONFIGURATION_README的相关内容。
第一个参数是制定邮件系统的身份以及在网络中的作用出站邮件的域名接收什么域名的邮件中继何种客户端的邮件把中继邮件传递到什么目的地传递的方法:直接还是间接许多其他配置参数的默认值都是从这儿继承来的下面的这个参数控制着何时将邮件传递到本地postmaster什么错误发送错误报告给postmaster如果你的postfix是在一个代理,NAT的后面或者你已启用了一个备份的MX,确保正确的设置下面的参数;Proxy/NAT外部网络地址Postfix守护进程运行在后台,把遇到的问题以及正常的活动记录到syslog日志中。
这里有一些事情需要注意一下:你需要postfix记录什么样的日志如果你的postfix有强烈的安全需求,你可能想让postfix守护进程运行在chroot 环境下postfix守护进程运行在chroot下如果你的postfix运行在一个虚拟的网络接口上,或者如果你的虚拟接口上还同时运行着其他的邮件服务,你将需要列在下面的参数:主机名域名网络地址postfix配置文件默认情况下,postfix配置文件在/etc/postfix目录下。
网络服务器搭建、配置与管理 项目11 配置与管理Postfix邮件服务器
(3)第三方中继。
由服务器提交的OPEN RELAY不是从客户端直接提交的。比如我的域是A,我通过服务器B(属于 B域)中转邮件到C域。这时在服务器B上看到的是连接请求来源于A域的服务器(不是客户),而邮 件既不是服务器B所在域用户提交的,也不是发B域的,这就属于第三方中继。这是垃圾邮件的根本。 如果用户通过直接连接你的服务器发送邮件,这是无法阻止的,比如群发软件。但如果关闭了OPEN RELAY,那么他只能发信到你的组织内用户,无法将邮件中继出组织。
MUA MTA MTA MTA MDA 邮箱
队列
队列
图11-2 电子邮件传输过程
队列
11.1.4 与电子邮件相关的协议
常用的与电子邮件相关的协议有SMTP、POP3和IMAP4。
8
1.SMTP
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)默认工作在TCP的25端口。SMTP属 于客户机/服务器模型,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转 方式。SMTP属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过 SMTP指定的服务器,就可以把电子邮件寄到收件人的服务器上了。SMTP服务器则是遵循SMTP的 发送邮件服务器,用来发送或中转发出的电子邮件。SMTP仅能用来传输基本的文本信息,不支持字 体、颜色、声音、图像等信息的传输。
Linux1 邮件服务器 Postfix的安装
Linux1 邮件服务器 Postfix 的安装Red Hat Enterprise Linux 5.4中内置有Sendmail 和Postfix 两种服务,并且默认配置下已经启用了Sendmail 。
不过,从前文的分析可以看出,Postfix 有很多Senmail 所没有的优势,所以我们准备采用Postfix 。
虽然RedHat Enterprise Linux5.4同时提供Sendmail 与Postfix ,不过同时启用会出现冲突,并不建议这两者并存,因此在安装Postfix 后,要记得将Sendmail 停用或删除。
删除操作,可在终端下利用“rpm –e 安装的sendmail 软件包名称”命令格式,并按【回车】键依次卸载sendmail-cf 、sendmail-doc 和sendmail-devel 3个软件包,如图9-48所示。
图9-48 删除Sendmail 相关软件包删除Red Hat Enterprise Linux 5.4默认安装的Sendmail 后,就可以放心地安装、启用Postfix 服务了。
由于Red Hat Enterprise Linux 5.4中的Postfix 服务默认并不会自动安装,所以在安装Postfix (使用RPM 工具)之前,首先需要在终端界面下使用-qa 命令查看系统是否安装有Postfix ,如图9-49所示。
图9-49 查看是否安装Postfix如果输出中没有任何结果显示,则表明Postfix 服务没有被安装。
相反,则应该显示“postfix-2.3.3-2”等字样。
尚未安装这项服务,则可将Red Hat Enterprise Linux5.4的第3张安装盘放入光驱(或者直接放入Red Hat Enterprise Linux 5.4的DVD 安装盘)。
然后,使用mount 命令将此光盘挂载到任一个指定的目录下(如,/tmp ),如图9-50所示。
postfix+dovecot详解
一、概述Postfix和Dovecot是两个常用的邮件服务器软件,用于在Linux系统上搭建邮件服务器。
Postfix是用于发送邮件的邮件传输代理(MTA),而Dovecot是用于接收邮件的邮件传输代理(MDA)。
本文将详细介绍Postfix和Dovecot的安装、配置和使用方法。
二、Postfix详解1. Postfix概述Postfix是一个开源的邮件传输代理软件,由Wietse Venema开发。
它在功能上类似于Sendm本人l,但相比Sendm本人l,Postfix更加安全、稳定、高效。
由于其可靠性和安全性,Postfix成为了Linux系统中最流行的邮件服务器之一。
2. Postfix安装在大多数Linux发行版中,Postfix都是作为软件仓库中的一个包进行分发的,可以通过包管理工具进行安装。
在Debian/Ubuntu系统中,可以使用以下命令进行安装:```sudo apt-get install postfix```在CentOS/RHEL系统中,可以使用以下命令进行安装:```sudo yum install postfix```3. Postfix配置Postfix的主要配置文件为`/etc/postfix/m本人n.cf`,在配置Postfix 之前,我们需要进行一些基础配置,如配置域名、配置邮件别名等。
然后可以编辑`/etc/postfix/m本人n.cf`文件,配置主机名、监听位置区域、邮件转发、反垃圾邮件措施、SSL加密等内容。
4. Postfix使用在Postfix配置完成之后,可以通过命令行工具来管理Postfix,如新建用户、发送邮件、查看邮件队列等。
也可以使用邮件客户端向Postfix服务器发送接收邮件。
三、Dovecot详解1. Dovecot概述Dovecot是一个开源的邮件传输代理软件,由来自芬兰的Dovecot开发团队开发。
它主要用于接收和存储邮件,为用户提供POP3和IMAP等接收邮件协议的支持。
Postfix的工作原理
Postfix的⼯作原理传统的将所有功能都集中在同⼀个程序⾥,这种结构我们称之为“单体式设计”(monolithic).采⽤专职负责的策略,不同的功能分别交由不同的专门程序处理,这种结构称为“模块化设计”(modular)。
这些⾃成⼀格的专门程序,我们称之为组件(component)。
⼤多数组件都是以daemon 的形式存在,也就是常驻在系统内存⾥的连续动作的后台进程(background process)。
当Postfix被启动后,⾸先启动的是master daemon,它主导邮件的处理流程,同时也是其他组件的总管。
在处理邮件的过程中,master 会启动对应功能的组件来处理相关事宜,被master启动的组件,在完成交付的⼯作之后会⾃⾏结束;或者,如果组件的处理时间超过时限,或是⼯作量到达预定限度,组件也会⾃⾏结束。
master daemon会常驻在系统中,当管理员启动它时,它从main.cf和master.cf这两个配置⽂件取得启动参数。
Postfix内部收信、发信流程图整个处理流程分为三个阶段:接收邮件、将邮件排⼊队列、递送邮件。
每个阶段由⼀组独⽴的Postfix组件负责。
当⼀封邮件被收下并排⼊队列之后,队列管理器(Queue Manager)会启动适当的MDA,将邮件送到终点。
邮件如何进⼊Postfix系统邮件有四种渠道可以进⼊Postfix系统: 1、Postfix可接受来⾃本机系统的邮件(本机⽤户或⾃主进程提交的邮件)。
2、Postfix可接受⽹络传⼊的邮件(来⾃MUA或者其他MTA)。
3、已经被Postfix收下并交给MDA的邮件,被MDA传回到Postfix(通常是为了转寄到另⼀个地址)。
4、当Postfix⽆法将邮件寄到⽬的地时,⾃⼰会产⽣退信通知函。
邮件有可能在进⼊Postfix之前就被拒绝了,或者因为暂时性的故障(⽹络断线、远程服务器响应暂时性的错误等),同样的邮件可能会每隔⼀段时间就重复进⼊Postfix系统⼀次,重新递送。
Linux下的Postfix邮件服务器
Linux下的邮件服务器Postfix(一)在Linux下1、挂载光驱建立DNS服务器的MX记录:正向:反向:2、创建用户和密码:看一下邮箱邮件默认保存在这里:3、安装Postfix包,开启Postfix服务:4、关闭sendmail服务:5、编辑/etc/postfix/main.cf文件找到这几项修改其余不改:myhostname = 邮件主机的完整名称mydomain = 邮件主机域名myorigin = $mydomain(表示所有)设置发件人邮件地址的网域名inet_interfaces = all (表示监听所有端口)监听端口【把下面的inet_interfaces=localhost注释掉】mydestination = $myhostname, $mydomain(表示所有)指定接收邮件时收件人的域名mynetworks = 192.168.1.0/24, 127.0.0.0/8(192.168.1.0/24表示这个网段,127.0.0.0/8表示本地)设置可以为其转发邮件的网络relay_domains = $mydestination(表示所有)设置可以为其转发邮件的域名6、重新启动服务:7、验证:发信:#telnet 25 telnet到邮件服务器的25号端口helo 用helo或ehlo介绍自己(可以不写)mail from:li@ 发信人地址rcpt to:gen@ 收件人地址data 表示开始输入邮件正文Hello! 邮件正文.新起一行以“.”表示正文结束quit 退出telnet收信:Linux下的邮件服务器Postfix(二)windows下第三方软件在(一)的基础上作:1、安装软件包dovecot、perl-DBI和mysql:2、修改主配置文件/etc/dovecot.conf3、开启服务重启服务器:4、将windows的首选DNS指向写成DNS服务器IP:5、验证:安装一个收发邮件的软件,然后在用windows自带的邮件收发软件(开始---程序---Outlook Express)互相测试:Windows自带的:工具-----账户-----添加-----邮件------软件安装完后:开始----程序-----找到刚安装的收发邮件的软件Windows Live Mail点开发一封邮件试一下(抄送是同时发给谁):这里有可能被认为是垃圾邮件:再用另一种软件(pine)测试一下:在windows中安装这个软件(这个软件可以在Linux里用但要依赖很多包所以这里只在windows里试一下):再选几个OK或是就进入:点回车:选择S项:选中前四一项一项调(选中后双击可调,回车确定):到li中查看一下:设置Postfix服务器邮件转发和用户的别名在(一)(二)的基础上(这个大致写一下):1、编辑配置文件/etc/aliases文件的记录格式(在最下面添加)用户的别名(假名):用户的真名admin: root 邮件的别名(发给admin也就是发给root)group: user1,user2邮件的群发(发给group也就是发给user1、user2….. user1:root@邮件转发(将发给user1的邮件发给root用户)2、修改aliases文件后更新aliases.db文件postalias hash:/etc/aliases3、刷新服务器。
postfix各种退信原因详细分析
postfix各种退信原因详细分析一、退信由哪些内容组成由于退信是由收发信系统自动回复的,所以信件大都是英文内容,下面我们先来了解退信中都包含了哪些内容。
退信的发件人一般是MailAdministrator(系统管理员),信件的主题一般是Returned Mail之类的句子。
退信的上端标明了退信的原因:InvalidUser、Connection time out......等。
退信的中部内容是信件往来发生的时间、用户名等具体信息。
没有正常发送的信件一般都是将附在最后,便于你及时采取相应的补救措施。
二、退信的原因及解决方法1、邮件地址错误如果退信原因中有如下信息之一,请检查收信人的邮件地址是否有误。
550 <xxx@xxx.xxx.xx.xx>er unknow550 Requested action not taken:mailbox unavailable550.5.1.1 <xxx@xxx.xxx.xx.xx> is not a valid mailboxSorry, no mailbox here by that name550 Invalid recipient <xxx@xxx.xxx.xx.xx>xxx@xxx.xxx.xx.xx(user not found)如果邮件地址是正确的,那可能对方的这个电子邮件信箱已经不再使用了。
为了确定,可再重发一次以防是由于对方邮箱的收件服务器的技术故障而导致的退信。
2、邮箱空间不够如果退信原因中显示如下信息之一,表示邮箱溢出。
552 Message size exceeds fixed maximum message size(5000000)552 Message size exceeds maximum message size552 Message size exceeds fixed maximum message size:5242880 bytes这是指对方邮箱作了限制,剩余空间不够大,你发出的信件超过了它的容量限制,对方只好把它退回来。
Linux怎么安装配置Postfix
Linux怎么安装配置PostfixPostfix是一款用法灵活的电子邮件应用程序,那么大家知道Linux怎么安装配置Postfix吗?今天店铺与大家分享下Linux安装配置Postfix的具体操作步骤,有需要的朋友不妨了解下。
Linux安装配置Postfix方法postfix的产生是为了替代传统的sendmail.相较于sendmail,postfix在速度,性能和稳定性上都更胜一筹。
现在目前非常多的主流邮件服务其实都在采用postfix. 当我们需要一个轻量级的的邮件服务器是,postfix不失为一种选择。
1. postfix是免费的:postfix想要作用的范围是广大的Internet用户,试图影响大多数的Internet上的电子邮件系统,因此它是免费的。
2. 更快:postfix在性能上大约比sendmail快三倍。
一部运行postfix的台式PC每天可以收发上百万封邮件。
3. 兼容性好:postfix是sendmail兼容的,从而使sendmail用户可以很方便地迁移到postfix。
Postfix支持/var[/spool]/mail、/etc/aliases、NIS、和 ~/.forward 文件。
4. 更健壮:postfix被设计成在重负荷之下仍然可以正常工作。
当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。
当处理的邮件数目增长时,postfix运行的进程不会跟着增加。
5. 更灵活:postfix是由超过一打的小程序组成的,每个程序完成特定的功能。
你可以通过配置文件设置每个程序的运行参数。
6. 安全性postfix具有多层防御结构,可以有效地抵御恶意入侵者。
如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。
下面来介绍linux上如何搭建和配置postfix服务:1.关掉sendmail相关的所有服务,最好是直接卸载sendmail.# service sendmail stop# chkconfig sendmail off#rpm -qa | grep sendmail | xargs rpm -e2.安装postfix.redhat6.0以上版本应该是默认集成了postfix服务的,假如没有安装的话,可以手动安装。
postfix+dovecot+openwebmail企业邮件系统
添加下面的数据
[openwebmail]
## Thomas Chung
## 2008.05.29
name=Openwebmail for Fedora or Enterprise Linux
shell> tar zxvf dovecot-1.1.4.tar.gz
shell> cd dovecot-1.1.4
shell> ./configure --sysconfdir=/etc
shell> make
shell> make install
2、调整dovecot.conf配置文件
Service httpd start
12、测试登陆openwebmail
在IE里输入mail.***.com/cgi-bin/openwebmail/openwebmail.pl, 这个地址是不是很长,那么我们来点短点的
在 httpd的 配置文件中添加 下面 内容:
ScriptAlias /mail /var/www/cgi-bin/openwebmail/openwebmail.pl
这样在IE 中直接输入
13、修改openwebmail的中文支持
Vi /var/www/cgi-bin/openwebmail/etc/openwebmail.conf
Domainnames
Default_language zh_CM.GB2312
Linux1 邮件服务器 Postfix的配置
Linux1 邮件服务器Postfix的配置Red Hat Enterprise Linux 5.4中的Postfix与Sendmail一样,默认只监听本地127.0.0.1端口的邮件收发。
但如果要对整个Internet开放的话,就需要学会对Postfix 进行配置。
然而,几乎所有的设置都可以通过/etc/postfix/main.cf文件搞定。
对于这个文件的内容需要注意以下几点:●“#”符号表示注释。
●所有设置值以类似变量的设置方式来处理。
例如myhostname =,其中等号两边要有空格,且第一个字符不可以是空白,也就是要从行首写起。
●可以使用“$”来扩展使用变量设置,例如myorigin = $myhostname,其等价于myorigin = 。
●如果该变量支持2个以上的数据,则需要使用空格符分隔,不过建议使用“,”加空格来处理。
例如myorigin = $myhostname, $mydomain,表示myorigin支持2个数据内容。
●可使用多行来表示同一个设置值,只要在第1行最后有“,”,且第2行开头为空格,即可将数据延伸到第2行继续书写。
●若重复设置某一项目,则以最后一次设置为准。
虽然该配置文件的内容比较多,但其中大部分内容都是注释(以“#”号开头的行),真正需要自行定义的参数并不多,而且这些参数就算不去定义,按照默认值也可以正常运行。
下面我们一起来看一看这些基本的postfix参数。
需要注意的是,一旦更改了main.cf文件的内容,则必须运行postfix reload命令使其生效。
1.myhostname这个参数用来设置Postfix服务器的计算机名称,且这个设置值被后面许多其它参数所引用,所以必须设置正确,应该设置成为完整的计算机名称(如),如图9-55中第71行所示。
图9-55 设置Postfix的计算机名称除了myhostname外,还有一个mydomain参数,该项目默认会取myhostname ()中删除第一个“.”之前内容的名称()为设置值,而设置Domain Name。
EMOS邮件必看手册
EMOS自启动服务postfix 邮件系统主程序courier-imap pop3及imap服务供客户端收信courier-authlib 与sasl一起做验证dspamd 垃圾邮件过滤,具有训练机制dspam-webd 启动一个httpd守护进程,帐号存数据库fail2ban 防止扫描攻击amavisd 调用clamav扫描邮件病毒 amavisd-newclamd 杀毒软件 Clamav自启动脚本/usr/local/mailgraph_ext/mailgraph-init start 邮件监控图表/usr/bin/freshclam --daemon 病毒库升级程序/usr/local/slockd/slockd-init start 垃圾邮件过滤器(Spam Locker),白名单先于黑名单起作用,支持RBL(实时黑名单列表)/var/www/extsuite/extman/daemon/cmdserver -v -d 在后台显示系统信息信件传送流程Foxmail(MUA)-SASL(cyrus-sasl,courier-authlib)-Postfix-Maildrop-Postfix-SpamLocker(Whitelist、Blacklist、RBL、Greylist)-dspamd-amavisd-clamd-Maildrop-(courier-imap)-SASL(cyrus-sasl,courier-auth lib)-Foxmail(MUA)Q&A1.如何用内网地址收发邮件?外网机器设置:smtp pop3 web访问内网机器设置:smtp 192.168.7.202 pop3 192.168.7.202 web访问http://192.168.7.202注:内网机器也可用外网机器的设置方法,会使用外网流量,速度较慢。
2.postfix投递机制,失败后隔多久重新投递?postfix会定期扫描队列,检查每一封等待邮件的时间,看看是否有任何等待邮件已经到了下一回合应该尝试投递的时间。
postfix的配置详解
postfix的配置详解(一)(1)postfix的配置文件结构postfix的配置文件位于/etc/postfix下,安装完postfix以后,我们可以通过ls命令查看postfix的配置文件:[root@mail postfix]# lsinstall.cf main.cf master.cf postfix-script这四个文件就是postfix最基本的配置文件,它们的区别在于:mail.cf:是postfix主要的配置文件。
Install.cf:包含安装过程中安装程序产生的postfix初始化设置。
master.cf:是postfix的master进程的配置文件,该文件中的每一行都是用来配置postfix的组件进程的运行方式。
postfix-script:包装了一些postfix命令,以便我们在linux环境中安全地执行这些postfix命令。
(2)postfix的基本配置postfix大约有100个配置参数,这些参数都可以通过main.cf 指定。
配置的格式是这样的,用等号连接参数和参数的值。
如:myhostname =等号的左边是参数的名称,等号的右边是参数的值;当然,我们也可以在参数的前面加上$来引用该参数,如:myorigin = $myhostname虽然postfix有100个左右的参数,但是postfix为大多数的参数都设置了缺省值,所以在让postfix正常为你服务之前,你只需要配置为数不多的几个参数。
下面我们一起来看一看这些基本的postfix参数。
需要注意的是,一旦你更改了main.cf文件的内容,则必须运行postfix reload命令使其生效。
1.myoriginmyorigin参数指明发件人所在的域名。
如果你的用户的邮件地址为user@,则该参数指定@后面的域名。
缺省地,postfix使用本地主机名作为myorigin,但是建议你最好使用你的域名,因为这样更具有可读性。
邮件系统的组成 完整的资料 强烈推荐资料
邮件系统组成部分的分析与选型首先,一个完整的邮件系统除了底层操作系统以外,还包括邮件传输代理(Mail Transfer Agent,MTA)、邮件分发代理(Mail Delivery Agent,MDA)和邮件用户代理(Mail User Agent,MUA)三个功能部分(如图1)。
图1 邮件系统功能结构图其次,在分析和架构过程中要紧密把握邮件系统中最重要的三个特性,体系结构、安全性和处理性能。
只有牢牢把握上述几个特点,将其作为系统选型的参考准则,才能成功建立一个令人满意的邮件系统。
邮件系统的投递和分发是一个比较复杂的过程,下面就从邮件系统的几个功能模块入手,剖析整个邮件系统的构架。
1.操作系统操作系统作为整个邮件系统服务器的底层支持,安全性至关重要。
在这一方面,Unix 类操作系统先天就足够安全、足够健壮。
至于具体应用中是选择Unix、BSD或Linux操作系统,可以根据具体情况来选择合适的系统。
2.邮件传输代理MTAMTA是负责处理所有接收和发送邮件的程序。
对于每一个外发的邮件,MTA决定接收方的目的地。
如果目的地是本地主机,那么MTA将把邮件直接发送到本地邮箱,或者交给本地的MDA进行投递。
如果目的地是远程主机,则MTA必须先和远程主机通信,得到远程主机的许可后建立通信链路,使用简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)传递邮件。
从上面的描述看,MTA好像并不是一个复杂的程序,其实不然。
一个好的MTA程序必须具备上文提到的三个特征。
Unix环境下可供选择的MTA程序很多,通过互联网的检验并被广泛使用的有Sendmail、Qmail和Postfix三种。
下面分别分析这三种MTA程序。
(1)SendmailSendmail MTA是使用最广泛的MTA程序之一。
它是Eric Allman于1979年在伯克利大学时所写,它的成长一直伴随着Unix的发展,是目前最古老的MTA程序。
postfix dovecot工作原理
Postfix和Dovecot是两个常用的邮件服务器软件,它们通常一起使用来提供完整的邮件服务。
Postfix是一个邮件传输代理(MTA),负责接收和发送邮件。
它的工作原理如下:1. 接收邮件:Postfix监听25端口,当有邮件发送到服务器时,它会接收并将邮件存储在本地的邮件队列中。
2. 邮件队列:Postfix使用邮件队列来管理待发送的邮件。
队列中的邮件按照先进先出的原则进行处理。
3. 邮件路由:Postfix根据配置文件中的规则,将邮件路由到正确的目的地。
这可能是本地用户的邮箱,也可能是其他邮件服务器。
4. 邮件传输:Postfix使用SMTP协议将邮件传输到目标服务器。
它与目标服务器建立SMTP连接,并将邮件通过该连接发送出去。
Dovecot是一个邮件传输代理(MTA),负责存储和访问用户的邮件。
它的工作原理如下:1. 邮件存储:Dovecot负责将接收到的邮件存储在服务器上。
它可以使用不同的存储引擎,如Maildir或Mbox。
2. 用户认证:Dovecot提供用户认证功能,确保只有授权用户可以访问自己的邮件。
它支持多种认证方式,如基于密码的认证、基于证书的认证等。
3. 邮件访问:Dovecot提供POP3和IMAP协议,使用户可以通过邮件客户端(如Outlook、Thunderbird等)访问自己的邮件。
用户可以查看、发送、删除邮件等操作。
4. 安全性:Dovecot支持SSL/TLS加密,确保邮件传输的安全性。
它还提供防止垃圾邮件和病毒的功能,如反垃圾邮件过滤、病毒扫描等。
总结起来,Postfix负责邮件的传输,而Dovecot负责邮件的存储和访问。
它们共同工作,提供完整的邮件服务。
使用OpenLDAP搭建Postfix邮件系统
使用OpenLDAP搭建Postfix邮件系统一、系统环境及本文用到相关软件及下载地址1、系统环境Linux 系统版本:CentOS release 5.2 (Final)内核版本:2.6.18-92.el5二、.卸载sendmail#killall sendmail#rpm -e --nodeps sendmail三、定义yum的非官方库#vi /etc/yum.repos.d/dag.repo[dag]name=Dag RPM Repository for Red Hat Enterprise Linuxbaseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/daggpgcheck=1enabled=1gpgkey=/rpm/packages/RPM-GPG-KEY.dag.txt四、开始安装1、增加系统相关用户:#groupadd postfix# useradd -g postfix -M -s /bin/false postfix#groupadd postdrop#groupadd vmail -g 1000# useradd -u 1000 -g 1000 -M -s /sbin/nologin -d /dev/null vmail2、安装Apache、PHP(如果在安装系统的时候已经安装过了,可以不用做此步骤)#yum -y install httpd php php-mysql php-gd php-imap php-mbstring php-ldap3、安装相关依赖关系包#yum -y install perl-Unix-Syslog perl-GD \perl-Digest-SHA1 perl-Digest-HMAC perl-Net-IP \perl-Net-DNS perl-Time-HiRes perl-HTML-Tagset \perl-HTML-Parser perl-libwww-perl perl-IO-stringy \perl-IO-Multiplex perl-Net-SSLeay-1.30 perl-IO-Socket-SSL \perl-Net-Server perl-TimeDate perl-MailTools \perl-MIME-Base64 perl-Convert-BinHex perl-MIME-tools \perl-Convert-TNEF perl-Convert-UUlib \perl-Compress-Zlib perl-Archive-Zip perl-IO-Zlib \perl-Archive-Tar arc-5.21o zoo-2.10 unarj4、增加LDAP服务器记录:这两台记录其实是LDAP客户端查询LDAP服务器的记录,在客户端的设置文件中(ldap.conf)会用到这些记录,当然,你可以更改成其它任何的名称,如果所有的软件都是安装在同一台服务器上的话,IP地址可以设成127.0.0.1,我这里设置的是实际的地址.#echo "192.168.254.162 " >> /etc/hosts#echo "192.168.254.162 " >> /etc/hosts5、安装OpneLDAP:你可以通过两种方式来安装,第一种是在安装系统是自已就安装了,你如果认为它的版本太低了,可以通过YUM的方式升级一下,也可以通过源代码的方式安装,我这里是通过YUM的方式升级了一下,如果通过源代码安装的话,那后面的一些组件的安装时就需要注意一下路径了.#yum install openldap*6、配置OpenLDAP:配置LDAP需要用到extman中的schema文件,所以要先复制extman中的对于LDAP 支持的schema文件到相应的地方.具体的操作如下:# tar zxf extman-1.1.tar.gz# cd extman-1.1/docs#cp ./extmail.schema /etc/openldap/schema/#vi /etc/openldap/slapd.conf更改以下内容:include /etc/openldap/schema/extmail.schemasuffix "dc="rootdn "cn=Manager,dc="rootpw {MD5}7tjNxADf1OyF3/cKFwBmtw== #注:这里用名文秘密的时候在初始化的时候可能会出错,建议用加密的密码。
第十章 E-mail服务
10.2.1 Redhat Enterprise Linux 5 下的MTA
Redhat Enterprise Linux 5支持三种不同风格的 MAT ,分别是 Sendmail 、 Postfix 和 Exim ,如果 三 者 全 部 安 装 了 , 则 默 认 的 MTA 是 sendmail(/usr/sbin/sendmail) , 可 以 使 用 “Mail Transport Agent Switcher”切换MTA, 有两种切换方式: 1. 基本文本界面的切换工具,这时需要安装systemswitch-mail RPM包; 2. 基于图形界面的切换工具,这时需要安装systemswitch-mail-gnome RPM包,这两个工具在发行 光盘里都有。
常见的电子邮件协议有三种:SMTP协议、POP协议和IMAP 协议。 1. POP3协议 POP(Post Office Protocol ,邮局协议),用于电子邮件的 接收,有两种版本,分别是POP2和POP3,现在常用的是第 三版,简称为POP3,两者都具有电子邮件的接收功能,但由 于两者使用了不同的协议端口,所以并不相互兼容。
Rbl maps Rss List IMAP/POP3 MUA Badmailfrom Control Maildrop Filter SMTP auth/SASL auth MDA Relay Restriction
MTA(Sendmail/Postfix等) Syslog monitor Protect service LDAP/Database Storage Server Firewall/Selinux Linux/Unix Operating System Web Server Webmail(MUA)
postfix postmap 用法
postfix postmap 用法Postfix是一款流行的邮件传输代理(MTA),而Postmap是Postfix的配置工具之一,用于将域名系统(DNS)名称映射到邮件地址。
在Postfix中,Postmap 通过解析域名系统数据库并更新本地映射数据库来完成此操作。
本文将向您展示如何使用Postfix和Postmap进行配置和操作。
一、安装和配置Postfix1.确保您已经正确安装了Postfix,并且已经配置了基本的邮件传输设置。
2.打开Postfix的主要配置文件`/etc/postfix/main.cf`,进行以下更改:*将`smtpd_tls_security=none`更改为`smtpd_tls_security=yes`,以启用TLS加密。
*添加以下行以启用DNS解析和映射功能:`relayhost=[dns_server]:53`。
这将使Postfix使用DNS服务器进行解析。
3.保存配置文件并退出。
二、安装和配置DNS服务器确保您已经安装并配置了适当的DNS服务器,如BIND (BerkeleyInternetNameDomain)。
您需要为域设置反向DNS(PTR)记录和正向DNS邮件别名(CNAME)。
三、使用Postmap更新映射数据库1.运行以下命令以更新本地映射数据库:`postmap-u/etc/postfix/maps`。
这将使用Postfix配置的映射文件和DNS服务器进行更新。
2.检查数据库文件是否成功更新:`ls-l/etc/postfix/maps`。
您应该看到新的映射文件。
四、使用Postfix发送邮件1.启动Postfix服务:`systemctlstartpostfix`。
2.发送测试邮件:使用SMTP客户端(如Outlook、Thunderbird等)连接到Postfix配置的SMTP服务器,并发送一封测试邮件到您的电子邮件地址。
确保您的电子邮件地址已添加到Postfix的映射数据库中。
postfix原理
postfix原理Postfix原理是一种邮件传输代理(MTA)系统,它的设计目标是简单、安全、高效。
Postfix的工作原理与传统的邮件系统相比有一些独特之处,本文将详细介绍Postfix的原理及其在邮件传输中的应用。
我们需要了解Postfix的基本架构。
Postfix采用模块化的设计,主要由邮件传输代理(SMTPD)、邮件投递代理(SMTP)和邮件传输代理(MTA)三个核心组件构成。
其中,SMTPD负责接收外部邮件,SMTP负责向外部邮件服务器发送邮件,MTA则负责邮件的转发和投递。
Postfix的工作流程如下:当外部邮件发送到本地服务器时,SMTPD模块会首先接收邮件,并进行基本的验证和过滤。
然后,邮件会被传输到MTA模块,MTA模块会根据预先配置的规则,将邮件转发给目标服务器或者直接投递到本地用户的邮箱中。
而当本地用户发送邮件时,SMTP模块会负责将邮件发送到目标服务器。
Postfix的原理在于其高度可配置性和灵活性。
管理员可以通过修改配置文件来定制邮件传输的行为,例如设置邮件的路由规则、过滤规则等。
此外,Postfix还提供了多种安全机制,如基于TLS的加密传输、基于SASL的身份验证等,以保护邮件的安全性。
Postfix还具有高效的邮件队列管理机制。
当目标服务器不可用或网络中断时,Postfix会将邮件暂时保存在邮件队列中,待目标服务器恢复正常后再进行投递。
这种机制确保了邮件的可靠传输,避免了邮件的丢失。
Postfix的原理还包括对垃圾邮件的过滤和防御机制。
Postfix可以通过DNSBL、SPF、DKIM等技术来判断邮件是否为垃圾邮件,并进行相应的处理。
这些机制可以有效地减少垃圾邮件的传输,提高邮件系统的安全性。
在实际应用中,Postfix被广泛用于各种规模的邮件系统中。
其简单、安全、高效的特点使得Postfix成为了许多企业和个人选择的首选邮件传输代理系统。
无论是小型企业还是大型互联网公司,都可以根据实际需求定制和部署Postfix,以满足不同的邮件传输需求。
Linux1 邮件服务器 Postfix所需软件与软件结构
Linux1 邮件服务器Postfix所需软件与软件结构相对于Sendmail还需要m4及Sendmail.cf来讲,Postfix要简单很多,只需要安装一个Postfix软件包即可。
那么Postfix有哪些重要的文件?它主要的文件都在/etc/postfix中,下面来介绍一下这些文件的具体内容。
1.配置文件在Postfix邮件服务器中,常见的配置文件包括/etc/postfix/main.cf(主配置文件)、/etc/postfix/master.cf(运行参数配置文件)、/etc/postfix/access(存取控制文件)及/etc/aliases(别名数据库文件)。
●/etc/postfix/main.cf这是Postfix主要的配置文件,几乎所有的设置参数都是在这个文件内规范的。
这个文件默认是一个完整的说明文件,如图9-47所示,可以参考这个文件的内容设置Postfix MTA。
修改这个文件后,需要重新启动Postfix。
图9-47 Postfix主配置文件●/etc/postfix/master.cf该文件主要包含了Postfix每个程序的运行参数,是一个很重要的配置文件。
不过这个文件默认已经配置好了,通常不需要更改。
●/etc/postfix/access(利用postmap处理)与Sendmail的/etc/Mail/access用途相同,可以设置开放的Relay,拒绝联机的来源或目标地址等信息。
不过此文件的生效还需要在/etc/postfix/main.cf中启动这个文件,且设置完毕后需要以postmap来处理成为数据库文件。
●/etc/aliases(利用postalias或nwealiases处理)该文件用来定义Postfix的别名,根据系统版本的不同,此文件放置的目录也将不同。
在Red Hat Linux5.0中,为了完全兼容于Sendmail和Postfix,所以这个文件默认存放在/etc/中,其它版本则可能放置在/etc/postfix 目录中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章 Postfix邮件系统(一)具体步骤:1.准备工作为了避免发生端口冲突、程序冲突等现象,应将系统自带的sendmail服务停用,并将默认启动状态设为关闭。
由于Postfix系统兼容并沿用了Sendmail的部分设置,因此建议保留Sendmail软件包,而不是直接卸载。
除此以外,因在下一章中需要Postfix支持SASL认证(通过软件包cyrus-sasl),所以应确认已安装好相关软件包。
2.源码编译及安装1)创建运行组、用户为了加强邮件服务的权限控制,需要创建专门的运行组账号postfix和postdrop,以及用户账号postfix。
运行用户不需要直接登录到系统,也无需创建宿主文件夹。
2)解包将下载的postfix源码包解压,释放到/usr/src/目录下,并切换到展开后的源码目录。
3)配置Postfix软件包的配置步骤使用“make makefiles”进行,具体配置选项可以参考源码目录中README_FILES/文件下的说明文件。
例如,若要使Postfix支持发信认证,可参考文件SASL_README中的相关信息。
其中,编译参数CCARGS和AUXLIBS的作用如下:CCARGS参数:为编译器提供额外的扩展参数。
例如,启用SASL认证,并指出cyrus-sasl认证程序的头文件位于/usr/include/sasl/。
AUXLIBS参数:为编译器指出位于标准位置之外的额外函数库。
例如,cyrus-sasl认证程序的库文件位于/usr/lib/sasl2/。
注:1. 如果配置写错误,需要重新配置,首先输入“make makefies clean”命令清除。
2.如果配置失败,可能是缺少db*-devel包。
4)编译并安装注:如果编译失败,除了缺少ncurses-devel包之外,可能还缺少cyrus-sasl*包。
执行make install命令以后,最后阶段会需要设置一些安装参数,一般直接按回车键接受默认或自动识别的配置即可。
完成安装以后,应执行postconf–a命令检查所支持的认证方式,若输出结果中未包含“cyrus”,则应检查配置步骤,纠正错误后重新进行配置、编译并安装。
3.Postfix服务控制Postfix邮件系统的控制主要通过/usr/sbin/postfix命令进行,结合start、stop、check、reload选项分别实现启动、停止、检查、重载服务的操作。
需要注意的是,实际监听服务的进程名并不是postfix,而是master。
当重新调整邮件服务配置以后,可以通过check选项进行基本的语法检查,检查无误后再通过reload选项来重载服务。
⏹主要目录和配置文件1.主要目录/etc/postfix:包括postfix服务的主配文件、各类脚本、查询表等。
/usr/libexec/postfix/:包括postfix服务的各个服务器程序文件。
/var/spool/postfix/:包括postfix服务的邮件队列相关的子目录,每个队列子目录用于保存不同的邮件。
常见的几个子目录及用途如下所述:◆incoming(传入):存放刚接收到的邮件。
◆active(活动):存放正在投递的邮件。
◆deferred(推迟):存放以前投递失败的邮件。
◆hold(约束):存放被阻止发送的邮件。
◆corrupt(错误):存放不可读或不可分析的邮件。
/usr/sbin/:包括postfix服务的各种管理工具程序,这些程序文件名以post开头。
主要的几个程序文件及其用途如下所述:◆postalias:构造、修改和查询别名表。
◆postconf:显示和编辑main.cf配置文件。
◆postfix:启动、停止postfix邮件服务,要求有root用户权限。
◆postmap:构造、修改或者查询查询表文件(记录如别名等映射关系的文件)。
◆postqueue:查看邮件队列,一般用户也可以使用。
◆postsuper:管理邮件队列,要求有root用户权限。
2.主要配置文件Postfix邮件系统的主要配置文件包括main.cf、master.cf,都位于/etc/postfix/文件夹下。
其中,main.cf是postfix服务的配置文件,设置邮件服务器时以修改此文件的内容为主;而master.cf是主程序master的配置文件,一般不需要修改。
在主配置文件main.cf中,可以调整的各种配置参数有近千个。
大部分的配置参数都被自动设置了默认值,如果在main.cf文件中没有对应的设置,那么postfix服务器将使用默认值来启动及运行。
因此,只需要修改很少的几个配置参数,就可以满足基本邮件服务器的要求了。
使用postconf工具可以辅助配置过程,不带任何选项时将列出当前postfix 服务器启用的所有配置参数,若添加“-n”选项则只列出使用非默认值的配置参数。
为了避免配置参数过多带来的干扰,提高易读性,建议对main.cf配置文件进行适当的简化,只保留与默认配置不同的参数。
3.Postfix的日志文件Postfix邮件服务的日志文件位于/var/log/maillog,该文件中记录了本机中的邮件进出相关的信息,包括邮件服务的启动、出错、与其他SMTP服务器的会话信息等。
在维护邮件服务器的过程中,经常会使用带“-f”选项的tail命令来跟踪日志变化。
当日志内容较多时,还可以使用egrep命令进行过滤,只查看包含reject、error、fatal等较重要的记录。
⏹配置SMTP发信服务在整个电子邮件系统中,postfix基于SMTP协议提供邮件传递服务,并负责将邮件分发到用户的邮箱空间。
对postfix服务的配置主要通过修改主配置文件/etc/postfix/main.cf来进行。
在main.cf文件中,以“#”号开头的行表示注释信息,其他行表示有效设置。
设置行的格式与为shell变量赋值的形式非常类似,采用“配置参数=值”的形式,其中等号两边的空格可有可无。
当某个配置参数包含多个值时,使用逗号或空格进行分隔,也允许换行进行分隔,但行首至少应有一个空格。
1.设置main.cf,并启动服务在上述配置中,将mydestination的值设置为“$mydomain,$myhostname”,表示将@和@域作为本地目标域,允许投递到本地邮箱空间。
各用户的邮件将被保存到宿主目录下的Maildir/文件夹中。
邮箱空间用来存放每个用户的电子邮件内容。
在postfix服务器中,支持两种最常见的邮箱存储方式:Mailbox、Maildir(当指定的存储位置最后一个字符为“/”时,自动使用Maildir存储方式)。
Mailbox:同一个用户的所有邮件内容存储为单个文件,通常保存在/var/spool/mail/目录下,文件名与用户名相同。
Mailbox存储方式比较古老,当邮件数量较多时会降低查询和管理的效率。
Maildir:使用目录结构来存储用户的邮件内容,每一个用户使用一个文件夹,每封邮件都作为一个独立的文件存放。
Maildir方式的存取速度和效率要好一些,对于管理邮件内容也更加方便,大多数较新的邮件服务器都采用这种方式。
2.添加邮箱账号Postfix服务器默认使用本机中的系统用户作为邮件账号,因此使用时只需要添加Linux用户账号即可。
测试时,可以添加两个邮件账号xiaoqi和lisi,并为其设置密码。
3.SMTP发送邮件测试将postfix服务器交付使用之前,最好先在本机测试一下发信功能是否正常。
命令行中的测试工作可以通过telnet命令进行。
例如:可以连接到邮件服务器的25端口,并输入相关的SMTP命令,以邮件账户xiaoqi@作为发件人,给lisi@发送一封测试邮件。
邮件发送并投递成功以后,可以到服务器中lisi用户的宿主目录下进行查看,新接收到的邮件保存在Maildir/new/目录中。
通过以上测试结果,不难发现已经能够通过postfix服务器发送并投递邮件了,但是还只能在服务器本机查看收到的邮件。
若要使收件人能够从其他主机查收邮件,还需要进一步安装POP3或IMAP服务器,以提供邮件的下载服务。
配置POP/IMAP收信服务Dovecot是一个安全性较好的POP3/IMAP服务器软件,响应速度快而且扩展性好。
Dovecot默认也使用Linux的系统用户,并通过PAM(Pluggable Authentication Module,可插拔认证模块)机制进行身份认证,只有通过认证后才允许用户收取邮件。
1.编译安装Dovecot软件包1)预先创建运行用户2)源码编译安装注:在编译安装之前,先确认pam-devel包是否安装。
如果没有安装,必须先安装成功后,然后再配置。
3)添加为系统服务dovecot2.建立配置文件,并启动服务1)建立配置文档Dovecot的配置文件位于/etc/dovecot/目录下,主配置文件为dovecot.conf,默认并没有此文件,需要参考样例目录重新创建。
为了方便以后的扩展配置,建议将各种样例配置文件都复制到/etc/dovecot/目录下。
若要支持系统用户认证,还应建立相应的PAM认证文件/etc/pam.d/dovecot,具体内容请参考/etc/pam.d/目录下的其他文件。
2)调整主配置文件为了降低初学难度,这里只使用系统用户认证,而并不使用SSL等安全机制。
因此需要修改主配置文件dovecot.conf,将“!include conf.d/*.conf”行改为“!include conf.d/10-auth.conf”,并禁用SSL机制,允许在验证时使用明文的用户名和密码。
除此之外,还需要指定邮箱格式及存储位置。
4)启动dovecot服务,并确认监听状态Dovecot默认已配置为监听POP3/IMAP邮件协议,因此启动dovecot服务后,可以查看对TCP端口143、110的监听。
3.POP3接收邮件测试使用telnet连接到Dovecot邮件服务器的110端口,输入POP3操作命令,以邮箱账户lisi@的身份查收邮件内容。
测试过程如下所述:通过以上测试结果,不难发现用户已经能够通过Dovecot服务器收取邮件。
该服务器具备了SMTP发信功能、POP3/IMAP收信功能,一台简单的邮件服务器的设置就基本上大功告成了。
测试发信、收信功能1.设置邮箱账号在点击上图中的“测试账户设置”后,会弹出如下图所示的窗口,并自动测试。
如果显示状态都为“已完成”,说明设置没问题。
2.发送测试邮件3.接受邮件测试在测试收信、发信的过程中,若出现失败的情况,应及时查看/var/og/maillog邮件进出日志,并根据相关信息分析、排查故障。
⏹邮件系统的角色MTA(Mail Transfer Agent,邮件传输代理):一般被称为邮件服务器软件。