‘壹’ 到底谁牛 linux邮件服务器软件比较
几年以前,Linux环境下可以选择 的可以免费邮件服务器软件只有Sendmail,但是由晌基瞎于Sendmail的缺锋中陷,一些开发 者先后开发了若干种其他的邮件服务器软件。当前,运行在Linux环境下免费的 邮件服务器,或者称为MTA(Mail Transfer Agent)有若干种选择,比较常见的有Sendmail、Qmail、Postfix、 exim及Zmailer等等。本文希望通过对几种影响相对来说比较大的主流Linux环境 下的MTA的特点进行阐述,并对其优缺点一一分析比较,使用户在选择Linux 环境下的免费MTA时有一个选择的依据。
一、Postfix
Postfix是一个由IBM资助下由Wietse Venema 负责开发的自 由软件工程的一个产物,其目的是为用户提供除sendmail之外的邮件服务器选择 。Postfix力图做到快速、易于管理、提供尽可能的安全性 ,同时尽量做到和sendmail邮件服务器保持兼容性以满足用户的使用习惯。起初 ,Postfix是以VMailer这个名字发布的,后来由于商标上的原因改名为Postfix。
1.主要设计目标
Postfix工程的目标是实现一个邮件服务器,提供给用户除sendmail以外的选 择。其设计目标包括:
性能: Postfix要比同类的服务器产品速度快三倍以上,一个安装 Postfix的台式机一天可以收发百万封信件。Postfix设计中采用了web服务器的 的设计技巧以减少进程创建开销,并且采用了其他的一些文件访问优化技术以提 高效率,但同时保证了软件的可靠性。
兼容性:Postfix设计时考虑了保持Sendmail的兼容性问题,以使移植变 的更加容易。Postfix支持/var[/spool]/mail, /etc/aliases, NIS, 及 ~/.forward等文件。然而 Postfix为保证管理的简单性,所以没有支持配置文件 sendmail.cf。
安全和健壮性:Postfix设计上实现了程序在过量负载情况下仍然保证程 序的可靠性。当出现本地文件系统没有可用空间或没有可用内宴空存的情况时, Postfix就会自动放弃,而不是重试使情况变的更糟。
灵活性:Postfix结构上由十多个小的子模块组成,每个子模块完成特定 的任务,如通过SMTP协议接收一个消息,发送一个消息,本地传递一个消息,重 写一个地址等等。当出现特定的需求时,可以用新版本的模块来替代老的模块, 而不需要更新整个程序。而且它也很容易实现关闭某个功能。
安全性:Postfix使用多层防护措施防范攻击者来保护本地系统,几乎每 一个Postfix守护进程都能运行在固定低权限的chroot之下,在网络和安全敏感 的本地投递程序之间没有直接的路径—一个攻击者必须首先突破若干个其他的程 序,才有可能访问本地系统。Postfix甚至不绝对信任自己的队列文件或IPC消息 中的内容以防止被欺骗。Postfix在输出发送者提供的消息之前会首先过滤消息 。而且Postfix程序没有set-uid。
2.Postfix的一些特点
支持多传输域:Sendmai支持在Internet, DECnet, X.400及UUCP之间转发消息。 Postfix则灵活的设计为无须虚拟域 (vistual domai)或别名来实现这种转发。但是在早期的发布里仅仅支持STMP和有限度 地支持UUCP,但对于我国用户来说,多传输域的支持没有什么意义。
虚拟域:在大多数通用情况下,增加对一个虚拟域的支持仅仅需要改变一个 Postfix查找信息表。其他的邮件服务器则通常需要多个级别的别名或重定向来 获得这样的效果。
UCE控制 (UCE,unsolicited commercial email): Postfix能限制哪个主机允许通过自身转发邮件,并且 支持限定什么邮件允许接进。Postfix实现通常的控制功能:黑名单列表、RBL查 找、HELO/发送者DNS核实。基于内容过滤当前没有实现。
表查看: Postfix没有实现地址重写语言,而是使用了一种扩展的表查看来实现地 址重写功能。表可以是本地 dbm或 db文件等格式。
3.Postfix体系结构及与Sendmail 的比较
Postfix是基于半驻留,互操作的进程的体系结构,每个进程完成特定的任务,没有任何特定的进程衍生关系(父 子关系)。而且,独立的进程来完成不同的功能相对于“单块”程序具有更好的 隔离性。此外,这种实现方式具有这样的优点:每个服务如地址重写等都能被任 何一个Postfix部件所使用,无须进程创建等开销,而仅仅需要重写一个地址, 当然并不是只有postfix采用这种方式。
Postfix是按照这种方式实现的: 一个驻留主服务器根据命令运行Postfix守护进程,守护进程完成发送或接收网 络邮件消息,在本地递交邮件等等功能。守护进程的数目由配置参数来决定的, 并且根据配置决定守护进程运行的次数(re-used times),当空闲时间到达配置参数指定的限度时,自动消亡。这种方法 明显地降低了进程创建开销,但是单个进程之间仍然保持了良好的隔离性。
Postfix的设计目标就是成为 Sendmail的替代者。由于这个原因,Postfix系统的很多部分,如本地投递程序 等,可以很容易地通过编辑修改类似inetd的配置文件来替代。
Postfix的核心是由十多个半驻留 程序实现的。为了保证机密性的原因,这些Postfix进程之间通过Unix的socket 或受保护的目录之下的FIFO进行通信。即使使用这种方法来保证机密性, Postfix进程并不盲目信任其通过这种方式接收到的数据。
Postfix进程之间传递的数据量是 有限制的。在很多情况下,Postfix进程之间交换的数据信息只有队列文件名和 接收者列表,或某些状态信息。一旦一个邮件消息被保存进入文件,其将在其中 保存到被一个邮件投递程序读出。
Postfix采用一些通常的措施来避 免丢失信息:在收到确认以前通过调用flush和fsync()保存所有的数据到磁盘中 。检查所有的系统调用的返回结果来避免错误状况。
大多数构建邮件服务器者都会选择 sendmail,公平的来讲sendmail是一个不错的MTA(Mail Transfer Agent),最初开发时Eric Allman的设计考虑主要放在了邮件传递的成 功性。不幸的是,Sendmai开发时没有太多的考虑Internet环境下可能遇到的安 全性问题。Sendmail在大多数系统上只能以根用户身份运行,这就意味着任何漏 洞都可能导致非常严重的后果,除了这些问题之外,在高负载的情况Sendmail运 行情况不是很好。
4.安全
Postfix则并一定要以root 的身份运行,而只需要一个主(master)程序以root身份运行,其生成进程来处理 接入、发出及本地邮件投递工作。通过使用一系列模块部件,每个任务由一个单 独的程序来运行(这样使审计变的容易一些)。例如发出邮件被卸载到一个队列目 录,在这里“pcikup”程序取到该邮件然后将邮件传递给“cleanup”程序,其再 将邮件传递给“trivial-rewrite”,其负责处理邮件头,最后若邮件目的是别 的系统则将邮件传递给“smtp”程序。而且相对于Sendmail来说Postfix也更容 易设置chrooted环境。只要简单地通过编辑master.cf(一般位于/etc/postfix 内)文件即可实现,并且Postfix将运行chrooted,以限定在其定义的队列目录之 下(通常位于/var/spool/postfix),同样可以在master.cf中对Postfix的单一模 块设置进程限制。用户可以限制Postfix以哪个用户的身份运行,一般来说是以 “postfix”用户(概念上该用户和Apache的nobody类似)运行,该用户可以访问 特定的队列目录。Postfix其他的主要优点是起配置文件的清晰易懂性。
5.与Sendmail的比较
如sendmail之类的邮件系统 是按照一个"单块"的结构设计实现的,该“单块”程序实现所有的功 能。当然这种结构有利于在系统的不同部分之间共享数据。但是这种结构容易出 现一些致命的错误。而如qmail的邮件系统上使用一种分层次的结构,按照固定 得顺序运行不同功能的子模块进程,执行完毕之后就将其释放。这种方法有良好 的“绝缘”性,但是增加了进程创建开销和进程间通信开销。但是通过合理的规 划子模块进程的运行顺序可以将开销保持在可以接受的范围内。
使用其他的MTA替代Sendmail是一 件非常麻烦的事情,用户往往又要花大量的时间去熟悉新的MTA的配置和使用。 而使用Postfix,你可以利用很多以有的配置文件。如(access, aliases, virtusertable等等),只需要简单的在master.cf中定义一下即可。此 外,Postfix在行为上也很象Sendmail,用户可以使用"sendmail"命令 来启动Postfix。
当然,使用一个软件来替代另外一个软件需要解决特定的问题。部分原因是因为 Postfix的安全特性,在配置Postfix时可能会遇到一些问题。最典型的问题是向 root用户发送邮件。Postfix一般不提高自身的权限(向root用户发送邮件所必须 的)来投递邮件。用户需要在别名文件中为root定义别名,如:"root: someuser"。这同样会对若干个邮件列表模块发生影响,特别是SmartList 。一般来说实现邮件列表最好使用Majordomo,它易于配置。
Sendmail一个很突出的问题就是可 扩展性和性能问题。例如用户若希望每天重新启动Sendmail来实现自动更新配置 文件(如为虚拟主机重定向邮件)就会出现问题。Sendmail生成新的进程来处理发 送和接收邮件,这些进程会一直存在直到传输结束,之后Sendmail才能退出,这 样你的脚本程序将不能正确的重起Sendmail。而对于Postfix,用户则只需要发 出命令"postfix reload"即可,Postfix将会重新加载其配置文件。
另外,对于有数以万计的用户的邮件服务器来说,使用文件来存储如匹配用户发 出邮件地址(例如bob发出的信的发信人修改为)。对于大量用 户来讲,该文件就会变的很巨大,从而影响系统的运行效率。而Postfix则可以 和一个数据库后台集成起来(当前只支持MySQL)来存放其配置信息,数据库方式 要比文件方式在可扩展性方面强大很多。
遵从IBM的开放源代码版权许可证 ,用户可以自由地分发该软件,进行二次开发。其唯一的限制就是必须将对 Postfix做的修改返回给IBM公司。因为IBM资助了Wietse的开发。
6.与Qmail的比较
Qmail的缺点就是配置方式和 Sendmail不一致,不容易维护。而且Qmail的版权许可证含义非常模糊,甚至没 有和软件一起发布。应用作者的话:若你希望分发自己修改版本的Qmail,你必须得到我的许可。
二、Qmail
Qmail是有Dan Bernstein开发的可以自由 下载的MTA,其第一个beta版本0.70.7发布于1996年1月24日,1997年2月发布了 1.0版,当前版本是1.03。
1.Qmail的特点
安全性:为了验证Qmail的安全性,Qmail的支持者甚至出资$1000悬赏寻找 Qmail的安全漏洞,一年以后,该奖金没有被领取,而被捐献给自由软件基金会 。目前,Qmail的作者也出资$500来寻求Qmail的安全漏洞。
速度:Qmail在一个中等规模的系统可以投递大约百万封邮件,甚至在一 台486一天上能处理超过10万封邮件,起支持并行投递。Qmail支持邮件的并行投 递,同时可以投递大约20封邮件。目前邮件投递的瓶颈在于SMTP协议,通过STMP 向另外一台互联网主机投递一封电子邮件大约需要花费10多秒钟。Qmail的作者 提出了QMTP(Quick Mail Transfer Protocol)来加速邮件的投递,并且在Qmail中得到支持。 Qmail的设计目标是在一台16M的机器上最终达到每天可以投递大约百万级数目的 邮件。
可靠性:为了保证可靠性,Qmail只有在邮件被正确地写入到磁盘才返回 处理成功的结果,这样即使在磁盘写入中发生系统崩溃或断电等情况,也可以保 证邮件不被丢失,而是重新投递。
特别简单的虚拟域管理:甚至有一个第三方开发的称为vchkpw的add-on来支持虚 拟POP域。使用这个软件包,POP3用户不需要具有系统的正式帐户。使用ezmlm支持用户自控制的邮件列表功能。
邮件用户和系统帐户隔离,为用户提供邮件帐户不需要为其设置系统帐户 ,从而增加了安全性。
2.Sendmail VS Qmail
首先:sendmail是 发展历史悠久的MTA,当前的版本是8.10.2。当然,Sendmail在可移植性、稳定 性及确保没有bug方面有一定的保证。但是Internet上有很多帖子都是关于如果 攻击Sendmail,这对于管理员来说是一个噩梦。Sendmail在发展过程中产生了一批经验丰富的Sendmail管理员,并且 Sendmail有大量完整的文档资料,除了 Sendmail的宝典: OReillys sendmail book written by Bryan Costales with Eric Allman以外,网络上有大量的tutorial、FAQ和其他的资源。这些大量的文档对于很好的利用 Sendmail的各种特色功能是非常重 要的。但是Sendmai当前来说是一个成熟的MTA。
当然,Sendmail具有一些缺点,其特色功 能过多而导致配置文件的复杂性。当然,通过使用m4宏使配置文件的生成变的容 易很多。但是,要掌握所有的配置选项是一个很不容易的事情。Sendmail在过去 的版本中出现过很多安全漏洞,所以使管理员不得不赶快升级版本。而且 Sendmail的流行性也使其成为攻击的目标,这有好处也有坏处:这意味着安全漏 洞可以很快地被发现,但是同样使Sendmail更加稳定和安全。另外一个问题是 Sendmail一般缺省配置都是具有最小的安全特性,从而使Sendmail往往容易被攻 击。如果使用Sendmail,应该确保明白每个打开的选项的含义和影响。一旦你理 解了Sendmail的工作原理,就Sendmail的安装和维护就变的非常容易了。通过 Sendmail的配置文件,用户实现完成一切可以想象得到的需求。
Qmail是一个选择, 其在设计实现中特别考虑了安全问题。如果你需要一个快速的解决方案如,一个 安全的邮件网关,则Qmail是一个很好的选择。Qmail和Sendmail的配置文件完全 不同。而对于Qmail,其有自己的配置文件,配置目录中包含了5-30个不同的文 件,各个文件实现对不同部分的配置(如虚拟域或虚拟主机等)。这些配置说明都 在man中有很好的文档,但是Qmail的代码结构不是很好。
Qmail要比Sendmail小很多,其缺 乏一些现今邮件服务器所具有的特色功能。如不象Sendmail,qmail不对邮件信 封的发送者的域名进行验证,以确保域名的正确性。自身不提供对RBL的支持, 而需要add-on来实现。,而Sendmail支持RBL。同样Qmail不能拒绝接收目的接收 人不存在信件,而是先将邮件接收下来,然后返回查无此用户的的邮件。Qmail 最大的问题就出在发送邮件给多个接收者的处理上。若发送一个很大的邮件给同 一个域中的多个用户,Sendmail将只向目的邮件服务器发送一个邮件拷贝。而 Qmail将并行地连接多次,每次都发送一个拷贝给一个用户。若用户日常要发送 大邮件给多个用户,使用Qmail将浪费很多带宽。可以这么认为:Sendmail优化 节省带宽资源,Qmail优化节省时间。若用户系统有很好的带宽,Qmail将具有更 好的性能,而如果用户系统的带宽资源有限,并且要发送很多邮件列表信息,则 Sendmail效率更高一些。Qmail不支持.forward(.forward在很多情况下对用户很 有用处);不使用/var/spool/mail,而是将邮件存放在用户home目录。下面是一 些使用Qmail不容易完成的工作,要使用Qmail完成这些工作,可能需要用户自己 动手实现或者使用第三方提供的不够可靠的模块。
Qmail的源代码相对于Sendmail来说要更加容易理解,这对于希望深入到内 部了解MTA机制的人员来说是一个优点。Qmail在安全性方面也要稳定一些。 Qmail 有很好的技术支持,但是没有象Sendmail那样被广泛地应用和大量 的管理员用户群。Qmail的安装不象Sendmail那样自动化,需要手工步骤。而且 Qmail的文档不如Sendmail那样完整和丰富。
Qmail的add-ons比 Sendmail要少一些。一般来说对于 经验稍微少一些的管理员,选择Qmail相对要好一些。 Qmail 要简单一些,而且其特色功能能满足一般用户的需求。Sendmail类似于office套 件,80%的功能往往都不被使用。这就使Qmail在一些场合可能被更受欢迎一些, 其具有一些Sendmail所没有的更流行和实用的特色功能,如:Qmail具有内置的 pop3支持。Qmail同样支持如主机或用户的伪装、虚拟域等等。Qmail的简单性也 使配置相对容易一些。
Qmail被认为相对于Sendmail更加安全和高效,运行 Qmail的一台pentium机器一天可以处理大约 200,0000条消息。
Qmail相对于其他的MTA要简单很多,主要体现在:
(1)其 他的MTA的 邮件转发、邮件别名和邮件列表都是采用相互独立的机制,而qmail 采用一种简单的转发(forwarding)机制来允许用户处理自己的邮件列表
(2)其他的MTA都 提供快速而不安全的方式及慢的队列方式的邮件投递机制;而qmail 发送是由新邮件的出现而触发的,所以其投递只有一种模式:快速的队列方式
(3)其他的MTA实 际上包括一个特定版本的inetd 来监控MTA的 平均负载,而qmail 设计了内部机制来限制系统负载,所以qmail-smtpd 能安全地从系统的inet来 运行sendmail有很多 的商业支持,而且由于大量的用户群,在互联网上有大量的潜在技术支持。而 Qmail只有很有限的技术支持。有家公司提供对Qmail的支 持,该公司同样提供了免费的add-ons,包括一个基于web的管理工具-QmailAdmin及一个通过vpopmail的对虚拟域的支持,甚至具有一个基于web的客户借接口— SqWebMail。
Qmail还具有一些其他的缺憾。如 它不是完全遵从标准,它不支持DSN,作者认为DSN是一个即将消亡的技术,而 Qmail的VERP可以完成同样的工作,而又不象DSN依赖于其他主机的支持。Qmail 另外一个问题是其不遵从支持7bit系统标准,而每次都发送8bit。若邮件接收一 方不能处理这种情况,就会出现邮件乱码的情况。
从安全性来讲,Sendmail要比 Qmail差一些,Sendmail在发展中出现过很多很着名的安全漏洞;而Qmail相对要 短小精悍,但是仍然提供了基本的STMP功能。而Qmail的代码注释要少一些。 Qmail的一个很好的特色是其支持一种可选的基于目录的邮件存储格式,而不是 使用一个很大的文件来存储用户所有的邮件。若用户的邮件服务器进行很多的 POP3服务,则这种邮件存储格式可以提高效率。但是遗憾的是Pine自身并不支持 这种存储格式,如果需要可以使用一些补丁来达到这个目的。
Qmail的优点是:每个用户都可以 创建邮件列表而无须具有根用户的权限,如用户"foo"可以创建名为 foo-slashdot, foo-linux,foo-chickens 的邮件列表,为了提供更好的功能,有一个叫 ezmlm(EZ Mailing List Maker)的工具可以支持自动注册和注销、索引等Majordomo所具有 的各种功能,但是都是CLI驱动的,只需要编辑很少的文件。Qmail非常适合在小 型系统下工作,一般只支持较少的用户或用来管理邮件列表。Qmail速度快并且 简单:Qmail是当你希望安全切容易配置的最佳的选择;Qmail可以在2个小时内 搞定配置,而Sendmail可能在两天内都搞不定。rocketmail internic 等都使用qmail来构建。
三、ZMailer
ZMailer是一个高性能、多 进程的Unix系统邮件程序。 [ a.k.a. MTA per X.400 parlance ],其可以从下面的服务器ftp://ftp.funet.fi/pu b/unix/mail/zmailer/ 自由下载。其也是按照单块模式设计的。如Hotmail等邮件系统就是用Zmailer构建的。
四、Exim
Exim是由Cambridge 大学开发的遵从GPL的MTA,其风格上类似与Smail 3 ,但是比Smail 3更加完善。当前最新版本是3.15。其主站点为。其最大的特点就是 配置简单性,但是其安全性不如Qmail及Postfix。
下面是对几种MTA的特点的比较,综合的来讲,Qmail和 Postfix都是很不错的MTA,选择的标准往往是个人的喜好问题,Postfix发展历史 要比Qmail迟一些。
MTA 成熟性 安全性 特色 性能 Sendmail兼容性 模块化设计 qmail medium high high high addons yes Sendmail high low high low x no Postfix low high high high yes yes exim medium low high medium yes no
当然除了这里介绍的几种MTA以外,还有 Smail, Post.Office, the Sun Internet Mail Server (SIMS), MMDF, CommuniGate, PMDF, Netscape Messaging Server,Obtuse smtpd/smtpfwdd,Intermail,MD Switch等其他商业或者免费的MTA可以选择。
‘贰’ redhatenterpriselinux7的内核程序存储于那个目录
管理类文件夹: /boot 该目录默认下存放的是Linux的启动文件和内核,例如LILO或GRUB的文件。 /initrd 它的英文含义是boot loader initialized RAM disk,就是由boot loader初始化的内存盘。在linux内核启动前,boot loader会将存储介质(一般是硬盘)中的initrd文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的initrd文件系统。 /bin 该目录中存放Linux的常用命令。 /sbin 该目录用来存放系统管理员使用的管理程序。 /var 该目录存放那些经常被修改的文件,包括各种日志、数据文件。如果做mail server,则需在Linux安装时将该目录设梁裂置为大空间。 /etc 该目录存放系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。如果做web server,则需在Linux安装时将该目录设置为大空间。 /dev 该目录包含了Linux系统中使用的纤携所有外部设备,它实际上是访问这些外部设备的端口,访问这些外部设备与访问一个文件或一个目录没有区别。例如在系统中键入“cd /dev/cdrom”就可以看到光驱中的文件。 /mnt 该目录默认下有2个分别对应光驱和软驱的文件夹cdrom和floppy。你可以临时将别的文件系统挂在该目录下,例如“挂载光驱mount/dev/cdrom /mnt/cdrom,查看光驱cd /mnt/cdrom”,养成良好习惯不使用时及时卸载“umount /mnt/cdrom”。 二、用户类文件夹: /root 如果你是以超级用户的身份登录的,这个就是超级用户的主目录。 /home 如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该用户的主目录。
三、应用程序类文件夹: /usr 用户的应用程序和文件几乎都存放橡竖闭在该目录下。
‘叁’ 如何在Linux命令行中通过SMTP服务器发送电子邮件
假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息。邮件信息可能是邮件简报、状态更新(如 Cachet)、监控警报(如 Monit)、磁盘时间(如 RAID mdadm)等等。当你要建立自己的 邮件发送服务器 传递信息时 ,你可以替代使用一个免费的公共 SMTP 服务器,从而避免遭受维护之苦。
谷歌的 Gmail 服务就是最可靠的 免费 SMTP 服务器 之一。想要从应用中发送邮件通知,你仅需在应用中添加 Gmail 的 SMTP 服务器地址和你的身份凭证即可。
使用 Gmail 的 SMTP
服务器会遇到一些限制,这些限制主要用于阻止那些经常滥用服务器来发送垃圾邮件和使用邮件营销的家伙。举个例子,你一次只能给至多 100
个地址发送信息,并且一天不能超过 500
个收件人。同样,如果你不想被标为垃圾邮件发送者,你就不能发送过多的不可投递的邮件。当你达到任何一个限制,你的 Gmail
账户将被暂时的锁定一天。简而言之,Gmail 的 SMTP 服务器对于你个人的使用是非常棒的,但不适合商业的批量邮件。
说了这么多,是时候向你们展示 如何在 Linux 环境下使用 Gmail 的 SMTP 服务器 了。
Google Gmail SMTP 服务器设置
如果你想要通过你的应用使用 Gmail 的 SMTP 服务器发送邮件,请牢记接下来的详细说明。
邮件发送服务器 (SMTP 服务器): smtp.gmail.com
使用认证: 是
使用安全连接: 是
用户名: 你的 Gmail 账户 ID (比如 "alice" ,如果你的邮箱为 [email protected])
密码: 你的 Gmail 密码
端口: 587
确切的配置根据应用会有所不同。在本教程的剩余部分,我将向你展示一些在 Linux 上使用 Gmail SMTP 服务器的应用示例。
从命令行发送邮件
作为第一个例子,让我们尝试最基本的邮件功能:使用 Gmail SMTP 服务器从命令行发送一封邮件。为此,我将使用一个称为 mutt 的命令行邮件客户端。
先安装 mutt:
对于 Debian-based 系统:
$ sudo apt-get install mutt
对于 Red Hat based 系统:
$ sudo yum install mutt
创建一个 mutt 配置文件(~/.muttrc),并和下面一样,在文件中指定 Gmail SMTP 服务器信息。将 替换成自己的 Gmail ID。注意该配置只是为了发送邮件而已(而非接收邮件)。
$ vi ~/.muttrc
set from = "@gmail.com"set realname = "Dan Nanni"set smtp_url = "smtp://@smtp.gmail.com:587/"set smtp_pass = ""
一切就绪,使用 mutt 发送一封邮件:
$ echo "This is an email body." | mutt -s "This is an email subject" [email protected]
想在一封邮件中添加附件,使用 "-a" 选项
$ echo "This is an email body." | mutt -s "This is an email subject" [email protected] -a ~/test_attachment.jpg
使用 Gmail SMTP 服务器意味着邮件将显示是从你 Gmail 账户发出的。换句话说,收件人将视你的 Gmail 地址为发件人地址。如果你想要使用自己的域名作为邮件发送方,你需要使用 Gmail SMTP 转发服务。
当服务器重启时发送邮件通知
如果你在 虚拟专用服务器(VPS)
上跑了些重要的网站,建议监控 VPS 的重启行为。作为一个更为实用的例子,让我们研究如何在你的 VPS
上为每一次重启事件建立邮件通知。这里假设你的 VPS 上使用的是 systemd,并向你展示如何为自动邮件通知创建一个自定义的 systemd
启动服务。
首先创建下面的脚本 reboot_notify.sh,用于负责邮件通知。
$ sudo vi /usr/local/bin/reboot_notify.sh
#!/bin/sh
echo "`hostname` was rebooted on `date`" | mutt -F /etc/muttrc -s "Notification on `hostname`" [email protected]
$ sudo chmod +x /usr/local/bin/reboot_notify.sh
在这个脚本中,我使用 "-F" 选项,用于指定系统级的 mutt 配置文件位置。因此不要忘了创建 /etc/muttrc 文件,并如前面描述的那样填入 Gmail SMTP 信息。
现在让我们创建如下一个自定义的 systemd 服务。
$ sudo mkdir -p /usr/local/lib/systemd/system$ sudo vi /usr/local/lib/systemd/system/reboot-task.service
[Unit]
Description=Send a notification email when the server gets rebooted
DefaultDependencies=no
Before=reboot.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/reboot_notify.sh
[Install]
WantedBy=reboot.target
在创建服务后,添加并启动该服务。
$ sudo systemctl enable reboot-task$ sudo systemctl start reboot-task
从现在起,在每次 VPS 重启时,你将会收到一封通知邮件。
通过服务器使用监控发送邮件通知
作为最后一个例子,让我展示一个现实生活中的应用程序,Monit,这是一款极其有用的服务器监控应用程序。它带有全面的 VPS 监控能力(比如 CPU、内存、进程、文件系统)和邮件通知功能。
如果你想要接收 VPS 上由 Monit 产生的任何事件的邮件通知,你可以在 Monit 配置文件中添加以下 SMTP 信息。
set mailserver smtp.gmail.com port 587
username "" password ""
using tlsv12
set mail-format {
from: @gmail.com
subject: $SERVICE $EVENT at $DATE on $HOST
message: Monit $ACTION $SERVICE $EVENT at $DATE on $HOST : $DESCRIPTION.
Yours sincerely,
Monit
}
# the person who will receive notification emails
set alert [email protected]
这是一个因为 CPU 负载超载而由 Monit 发送的邮件通知的例子。
‘肆’ linux如何使用chown改变权限
1:改变拥有者和群组,命令:chown mail:mail server.log。2:猛唯改变文件拥有者和群组,命令:chown root: server.log。3:改变文件群组,命令:chown :mail server.log,4:改变指定目录以及其子目录下的所有文件的拥有者和群组。命令:chown -R -v root:mail test6。-R 处理指定目录以及其子目录蔽知行下的所有文件宏哗。-v 显示详细的处理信息,尽请关注《linux就该这么学》官网。
‘伍’ linux邮件服务器搭建
使用postfix(提供smtp服务)、squirrelmail(提供web方式收发邮件)、dovecot(IMAP、pop3)、cyrus-imapd(创建邮箱用户)、saslauthd软件来实现。 (注意:在安装linux的时候,把防火墙和selinux设为禁止,我当时没把selinux设为禁止,当时头都做大了) 1。sendmail把系统的25和110端口给占用了,所以先要将sendmail服务停止并卸载: service sendmail stop rpm -e sendmail 2.postfix服务的搭建与配置 一:首先要挂载光盘 mount /dev/cdrom /mnt 二:安装postfix rpm -ivh /mnt/Server/postfix... 三:配置postfix vi /etc/postfix/mail.cf(建议把里面的内容全删了) #myhostname = mail.fu.com #mydomain = fu.com #myorgin =$mydomain #inet_interfaces =all #mydestination =$myhostname,$mydomain #mynetworks = 192.168.1.0/24,127.0.0.0/8 #relay_domains = fu.com 四:开启postfix service postfix start chkconfig postfix on 3.smtp安装配置(发邮件的) 一:安装smtp rpm –ivh /mnt/Server/cyrus-sasl…. 二:配置smtp vi /etc/sysconfig/saslauthd #socketdir=/var/run/saslauthd #mech=shadow 三:开启smtp service saslauthd start chkconfig saslauthd on 四:配置/etc/postfix/main.cf(一定要按照顺序配置main.cf,别一下把main.cf全配了,不能你的postfix是启动不了的) smtpd_sasl_auth_enable =yes smtpd_sasl_local_domain =’’ smtpd_recipient_restrictions =permit_mynetworks, sermit_sal_authenticated,reject_unauth_destination(注意这行和上一行是一起的,是连在一起的,假如这样分段写postfix启动会失败的 我上次就犯了这种错误,能后用冒泡的方法找出来的) broken_sasl_auth_clients = yes smtpd_client_restrictions = permit_sasl_authenticated smtpd_sasl_security_options = noanonymous mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp 五:记得要重启postfix service postfix restart 4.devecot安装(这是pop3接收邮件的) 一:安装devecot yum install dovecot*(yum安装下次会说) 二:配置dovecot(配置文件/etc/dovecot.conf) protocols = pop3 pop3s; protocol pop3 { listen = *:10100 }; 三:启动dovecot service dovecot start chkconfig dovecot on 四:安装cyrus-imapd 要安装的包cyrus-imapd-perl-2.3.7-7.el5.i386.rpm cyrus-imapd-utils-2.3.7-7.el5.i386.rpm cyrus-imapd-2.3.7-7.el5.i386.rpm cyrus-imapd-devel-2.3.7-7.el5.i386.rpm 配置/etc/postfix/main.cf mailbox_transport =lmtp:unix:/var/lib/imap/socket/lmtp 五:cyrus-imapd服务开启(这个服务开启很多人会忘记,一定要记得) /etc/init.d/cyrus-imapd restart 五:为邮箱增加用户 #passwd cyrus /usr/bin/cyradm –u cyrus localhost createmailbox user.fu user.fu.Send(发邮件) user.fu.Trash(垃圾邮件) user.fu.Drafts(草稿箱) 5.web收发邮件(squirrelmail) php-mbstring-5.1.6-23.2.el5_3.i386.rpm squirrelmail-1.4.8-5.el5_3.7.noarch.rpm 一:进入配置/usr/share/squirrelmail/config/conf.pl 6.在DNS上配置(mail.fu.com)(下次会讲怎么用DNS解析) 7.安装apache rpm –ivh /mnt/Server/httpd 能后进入主配置文件把servername mail.fu.com就行了 在浏览器的地址栏里输入 http://mail.fu.com/webmail
‘陆’ 141Linux 安装及配置邮件服务器
效果截图
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
‘柒’ mail服务器 配置方法
搭建一套邮件系统其实并不是一件庞大的工程,一套邮件系统的搭建构成可以分为以下三个部分:邮件服务器硬件、域名和固定ip地址、邮件服务器软件,搭建的便捷与否决定于邮件服务器软件的易用程度。(本文章以turbomail为例进行邮件系统的搭建说明)
一,邮件服务器硬件:最低配置要求piii以上,512m内存,硬盘在40g以上。
二,域名和ip地址:需要有独立的域名,并有更改mx记录的权限,内网用户可以使用自定义域名;需要有互联网固定ip,没有固定ip采用动态ip绑定域名软件也可。
三,邮件服务器软件:目前市场上的邮件服务器软件很多,比如exchange, mdaemon,imail,turbomail等,价格不等,质量也不等,售后服务也不等,建议用户综合比较价格,质量和技术服务,并索取试用期进行测试后进行选择(本文章以turbomail为例进行邮件系统的搭建说明)
搭建步骤:
一,在购进了服务器硬件后首先是要安装操作系统,建议用户使用linux操作系统,非常稳定,在熟悉代码后操作也不麻烦,邮件服务器最关键的就是稳定性,有了好的操作系统就有了稳定的保障。
二,域名请向域名供应商申请,国内比较大的有万网和新网,域名供应商提供域名解析的服务;mx记录可以通过域名供应商提供的管理界面进行修改。
三,有了这以上两个前提后就可以安装邮件服务器软件了。不同的邮件服务器软件的安装方法和简易度不同,我以国内最易安装的turbomail邮件服务器为例讲解安装过程:
1,下载安装包,请上官网直接下载。
2a,windows系统:双击下载的安装包,按照安装提示完成安装
3a,重启电脑
4a,电脑重启后,自动出现turbomail控制台,点击“运行mail服务器”和“运行webmail服务器”,启动邮件服务程序
1b,linux/solaris/aix/hp-ux/freebsd系统下:以root用户登录,解压安装包,生成turbomail安装目录,解压命令为:#tar -xvzfturbomail_linux_yyy_xxx.tgz
(注意:turbomail安装包必须放在根目录上)
2b,启动turbomail server,进入turbomail目录,执行starttm.sh,命令为:#./starttm.sh
3b,启动webmail服务,进入进入 turbomail/web/bin 目录,执行startup.sh。
命令为:#./startup.sh
4b,启动反垃圾服务,进入 turbomail/sa目录,执行sa_server.sh。命令为: #./sa_server.sh
四,邮件系统已经安装完毕,登录http://服务器ip:8080/maintlogin.jsp 进入管理员界面,添加域和用户后即可正式使用邮件系统了。
这样,您的邮件系统就已经搭建完毕,之后就需要做一些邮件服务器软件的细节性能配置工作,比如用户邮箱大小控制,收发邮件权限控制,反垃圾反病毒功能设置等等,这些就需参考邮件服务器软件供应商的使用说明书和咨询技术工程师了。
‘捌’ linux 命令模式下怎么配置邮件服务器
Linux什么系统的?如果是AS5.5的话...那我现在在下面打的就是=
=...
十分还真不好拿啊~建议LZ加点分-
-看在写的那么辛苦的份上..
物理机IP:192.168.10.100
域名:www.aiy.com
首先先设置DNS
mkdir
/mnt/cdrom
mount
-t
iso9660
/dev/cdrom
/mnt/cdrom
(挂载ISO...因为我用的是虚拟机=
=没有光盘..)
cd
/mnt/cdrom/Server/
rpm
-ivh
caching-chroot-9.3.3-7.el5.i386.rpm
rpm
-ivh
bind-*
vim
/etc/name.rfc1912.zones
=
=里面配置文件太长了...直接说哪一行吧-
-反正都差不多~只要是AS5.5的话
15行:localdomin修改为aiy.com
17行:localdomain.zone改为aiy.com.zone
27行:0.0.127改为本地前三位倒过来...10.168.192
29行:name.local改为192.168.10.zone
输入Shift+;
然后输入wq!强制保存并退出
vim
/etc/named.caching.nameserver.conf
15行127.0.0.1改为any
23行localhost改为any
32行、33行localhost改为any
cd
/var/named/chroot/var/named
cp
-p
localdomain.zone
aiy.com.zone
cp
-p
named.local
192.168.10.zone
vim
aiy.com.zone
在最后加mail
(TAB键对齐就好了)
IN
A
192.168.10.100
aiy.com
IN
MX
5
mail.aiy.com
同样
输入Shift+;
然后输入wq!强制保存并退出
vim
192.168.10.zone
同样在最后加100
IN
PTR
mail.aiy.com(注意空格同样是tab)
输入Shift+;
然后输入wq!强制保存并退出
(=
=下面的话这两句忽略掉了...太麻烦了)
ln
-s
aiy.com.zone
/var/named/
ln
-s
192.168.3.zone
/var/named/
vim
/etc/resolv.conf
nameserver
192.168.10.100
service
named
restart
试试
nslookup
mail.aiy.com
=
=DNS打完...然后MAIL等下继续..先提交保存=
=
-
-现在继续..
-
-继续...挂载省略了...直接安装
cd
/mnt/cdrom/Server
rpm
-ivh
m4-*
rpm
-ivh
sendmail-*
(一开始安装系统时候我没安装...所以现在挂载~如果一开始有选sendmail的话54掉就可以了..=
=再次~)
前面其实就设置好了mail服务的DNS...
cd
/etc/mail
vim
local-host-names
在最下面输入aiy.com
vim
sendmail.mc
116行127.0.0.1改为0.0.0.0
m4
sendmail.mc
>
sendmail.cf
cd
/etc/init.d
./saslauthd
restart
./sendmail
restart
./dovecot
restart
useradd
aiy
建立aiy用户
passwd
aiy
123456
123456
用户aiy密码设置为123456
mail
[email protected]
123
(标题)
123
(内容)
ctrl+d
然后信息就发完了..
T.T终于轮到测试了~...
su
aiy
切换到aiy用户
mail
查看aiy用户的mail
=
=这样就完了...现在发现aiy里面有份root邮件吧...T.T
还能输入
8917
字-
-不知不觉打了很多字了=
=
我QQ
1842534312不懂可以问我..
-0-可以转载~但是请保留全部...