热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

centos5.3系统sendmail服务器的配置

SendMail常规配置SendMail运行过程是读取/etc/mail/sendmail.cf配置文件,但该文件配置比较复杂,所以一般是配置/etc/mail/sendmail.mc,然后通过以下命令生成sendmail.cf文件(每次修改sendmail.mc后都必须通过使用该命令后再重启sendmail服务,否则

SendMail常规配置

SendMail运行过程是读取/etc/mail/sendmail.cf配置文件,但该文件配置比较复杂,所以一般是配置/etc/mail/sendmail.mc,然后通过以下命令生成sendmail.cf文件(每次修改sendmail.mc后都必须通过使用该命令后再重启sendmail服务,否则配置不会生效)。 

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

在/etc/mail/sendmail.mc文件对格式要求非常严格:

每句左边不能有空格

区分大小写

注释在最左边加dnl

每句必须以dnl结束

增加的语句,不能在最后一行

语句中的引号,如下图

 

  

1、安装bind及相关软件包。

yum -y install sendmail-cf.i* sendmail-doc.i*

2、SendMail在默认只侦听127.0.0.1,此处要修改为侦听指定网络接口或0.0.0.0(本机所有IP)

 

3、增加本服务器可处理的FQDN或区域名(只有在列表的本服务器才处理)。这需要修改/etc/mail/local-host-names文件。

  

4、执行以下步骤后SendMail即可收发邮件。

 

到此一个最简单的邮件系统已经通过SendMail实现了,下面来看看如何通过telnet命令测试邮件系统是否可以正常工作。

  

在linux字符模式中收取当前用户收件箱内容使用mail命令。

三、SendMail其它配置 

1、SendMail本地别名 

SendMail可以通过本地别名实现以下功能邮件转发、邮件组等功能,配置时用户必须是本地邮件用户。实现时需要编辑/etc/aliases文件,其方法如下图:

user1的邮件转发一份user2。

user3的邮件转发给user4,user3收不到。

发送给hr(系统中没有这个用户)的邮件user5及user6可收到。

2、SendMail虚拟别名

SendMail可以通过本地别名实现以下功能邮件转发等功能,配置时用户可以任意,该功能可以将邮件转发到外部区域。实现时需要编辑/etc/mail/virtusertable文件,其方法如下图: 

  

1:发送给 user5@example.zqin 邮件转发到 onlyzq@gmail.com 。

2:发送给admin@test.zqin的邮件转发到administrator@test.zqin。

3:所有发送给temp.zqin区域的邮件全部转发到user6@example.zqin。

4:所有发送给tmp.zqin的邮件转到对应%1@gmail.com,%1表示收件人。

3、SendMail地址伪装

SendMail对本服务器所有发出的邮件进行地址伪装(自动修改发件人地址)。 

全局伪装 

全局伪装针对所有本区域用户,此功能需修改/etc/mail/sendmail.mc文件,下面的例子中所有发住外部区域的邮件收件人所有区域自动修改为zhangqin.com:

MASQUERADE_AS(`zhangqin.com’)dnl      #复制修改为要伪装的域名
FEATURE(masquerade_envelope)dnl       #这句有例句就在第一句的下几行,取消注释即可
FEATURE(masquerade_entire_domail)dnl   #这句有例句就在第一句的下几行,取消注释即可 

指定用户伪装

指定用户的地址伪装,该功能只能用于收件人是外部域。这个可以和全局地址伪装同时使用。下面的例子中将所有 user7@example.zqin发出的邮件发件人修改为 zhangqin@rhel.com。

修改/etc/mail/sendmail.mc文件。

FEATURE(genericstable)dnl                    #需要输入,genericstable文件需要新建
MASQUERADE_AS(`always_add_domain’)dnl     #这句配置文件中有,不需修改
GENERICS_DOMAIN_FILE(`/etc/mail/local-host-names’)dnl     #需要输入 

建立用户列表。

在lost-hosts-names中加入虚拟区域名称

4、SendMail访问控制

通过/etc/access可以对通过SendMail的邮件流进行控制,其对邮件流通过的动作主要有以下几种:

From:发件人是其它域,收件人是当前域

To:发件人是当前域,收件人是其它域

Connect:发件人、收件人都是其它域

中继限制可用动作: 

REJECT:拒收并发退信通知

OK:无条件接收,当与REJECT发生冲突时优生

RELAY:接收,当与REJECT发生冲突时REJECT优先

DISCARD:拒绝

ERROR:550 your message:拒绝,返回特定通知 

下图是一个/etc/access文件的例子:


Dovecot常规配置

SendMail只能实现SMTP协议的功能,而目前在使用邮件系统时很多用户还是习惯使用类似foxmail的一些邮件客户端软件,这些软件通常都支持pop3、IMAP4等协议。如果希望在RHEL中实现pop3、IMAP4需要使用dovecot。

安装

1、安装dovecot软件包。 

  yum -y install dovecot.i*

2、dovecot配置比较简单,通常只需修改Dovecot修改支持的协议即可。在/etc/dovecot.conf中已有,只需取消注释即可(如下图)。

 

3、启动dovecot并将其设置为自动运行。

  service dovecot restart
chkconfig dovecot on


配置POPs&IMAPs

pop3及IMAP4协议都是采用明文方式进行数据传输,不过可以通过SSL对其数据传输进行加密

。配置方法如下: 

1、在/etc/pki/tls/certs目录下输入以下命令生成密钥(dovecot.pem只是文件名可任意)。

编辑/etc/dovecot.conf文件,加入下图内容:

在dovecot配置完成后可以通过mutt命令对pop3/pops及imap/iamps进行测试。具体方法如下:

1、使用POP3方法验证Dovecot

mutt -f pop://user@server[:port]

mutt -f pops://user@server[:port]

输入命令可通过pop(如使用pops方式,将下图命令中pop改为pops即可)方式收取邮件,注意是接服务器名称。

  mutt -f pop://user2@golf.example.zqin

输入用户密码

进入后可看到该用户的邮件

  feedom.net

在上、下移动选择邮件回车可查看。

2、使用IMAP4方法验证Dovecot

mutt -f imap://user@server[:port]

mutt -f imaps://user@server[:port] 

输入命令可通过imap(如使用pops方式,将下图命令中pop改为pops即可)方式收取邮件,注意是接服务器名称。

mutt -f imap://user2@golf.example.zqin

输入”o”同意开始通过imap连接服务器

 

进入后输入用户密码,可看到该用户的邮件

 


OpenWebMail常规配置

对于一个完整的邮件系统,提供用户通过浏览器访问是一个必不可少的功能,而使用OpenWebMail为用户提供该功能也是很不错的选择。不过在RHEL中默认并没有提供OpenWebMail的软件包,只有从www.openwebmail.com网站或从其它rpm包下载网站下载。OpenWebMail需要使用到apache、perl-Text-Iconv、perl-suidper软件包。

1、安装OpenWebMail及相关软件包。

yum -y install httpd.i*
rpm -ivh perl-Text-Iconv-1.5-1.fc8.i386
rpm -ivh perl-suidperl-5.8.8-41.fc8.i386
rpm -ivh openwebmail-2.51-5.i586

2、将配置文件/var/www/cgi-bin/openwebmail/etc/dbm.conf的内容修改为以下内容。

db_ext    .db
dbmopen_ext   .db
dbmopen_haslock  no

3、使用以下命令初始化OpenWebMail。

 

4、修改相关默认配置,编辑/var/www/cgi-bin/openwebmail/etc/openwebmail.conf文件。

default_language zh_cn gb2312            将预设语言改为简体中文。

default_iconset Cool 3D.Chinese.Simplified  将原有的English改为Chinese.Simplified,才能显示中文图标。

domainnames example.zqin                更改为自己定义的域名。

smtpserver 192.168.0.14                   更改smtp服务器的地址。

authpop3_server 192.168.0.14              更改pop3服务器的地址。

auth_module  auth_unix.pl                将用户认证方式改为使用/etc/passwd及/etc/shadow文件。

通过 http://mail.example.zqin/cgi-bin/openwebmail/openwebmail.pl就可以访问到openwebmail了(如下图)。

 

  bitscn.com

5、很显然这个地址太长了,可以/etc/httpd/conf/httpd.conf文件中增加如下内容后,可通过http://mail.example.zqin/mail就可以访问了。

ScriptAlias  /mail     /usr/local/apache/cgi-bin/openwebmail/openwebmail.pl 

6、设置用户配额,在/var/www/cgi-bin/openwebmail/etc/openwebmail.conf中最尾几行是配额的例子,下面是相关参数的作用。

quota_module            quota_unixfs.pl       quota的模板,由于邮件帐户还是Linux帐户,所以选它

spool_limit             5120                    邮箱限定5M

quota_limit             10240                 所有空间(包括邮箱)限定10M

quota_threshold         70                  空间使用达到配额的70%就提示

delmail_ifquotahit      no                  是否在空间使用超出配额时删除旧的邮件 

delfile_ifquotahit       no                   是否在空间使用超出配额时删除旧的文件 

到此整个邮件环境已搭建完成,不过这些只能算是第一步,对于一个成熟的邮件系统还有很多工作要做。永远都要记住邮件系统是貌似简单但实际维护量非常大的应用系统。比如防止垃圾邮件、病毒邮件、用户行为控制等等,这些将会在后继的文章中为大家讲解。 

在上、下移动选择邮件回车可查看。


推荐阅读
  • 本文探讨了Go语言(Golang)的学习价值及其在Web开发领域的应用潜力,包括其独特的语言特性和为什么它是现代软件开发的理想选择。 ... [详细]
  • 解决getallheaders函数导致的500错误及8种服务器性能优化策略
    本文探讨了解决getallheaders函数引起的服务器500错误的方法,并介绍八种有效的服务器性能优化技术,包括内存数据库的应用、Spark RDD的使用、缓存策略的实施、SSD的引入、数据库优化、IO模型的选择、多核处理策略以及分布式部署方案。 ... [详细]
  • 本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ... [详细]
  • 深入理解FastDFS
    FastDFS是一款高效、简洁的分布式文件系统,广泛应用于互联网应用中,用于处理大量用户上传的文件,如图片、视频等。本文探讨了FastDFS的设计理念及其如何通过独特的架构设计提高性能和可靠性。 ... [详细]
  • ###########性能监控脚本###########################!binbash#监控cpu系统负载IPifconfigeth0|grepinetaddr ... [详细]
  • 本文基于https://major.io/2014/05/13/coreos-vs-project-atomic-a-review/的内容,对CoreOS和Atomic两个操作系统进行了详细的对比,涵盖部署、管理和安全性等多个方面。 ... [详细]
  • Linux双网卡绑定技术详解与实践
    本文详细介绍了如何在Linux系统中实现双网卡绑定,即将两块物理网卡合并为一个逻辑网卡,以提高网络性能和可靠性。文中不仅涵盖了基本的概念,还提供了具体的配置步骤和测试方法。 ... [详细]
  • 本文详细记录了在Ubuntu 9.10操作系统上从零开始搭建LAMP(Linux, Apache, MySQL, PHP)环境的过程,包括遇到的问题及解决方案。旨在为初次尝试搭建LAMP环境的开发者提供参考。 ... [详细]
  • APP数据包捕获挑战
    本文探讨了在使用Burp Suite捕获移动应用数据包时遇到的两大难题,尤其是SSL Pinning安全机制的影响,并提供了一种解决方案。 ... [详细]
  • Iris 开发环境配置指南 (最新 Go & IntelliJ IDEA & Iris V12)
    本指南详细介绍了如何在最新的 Go 语言环境及 IntelliJ IDEA 中配置 Iris V12 框架,适合初学者和有经验的开发者。文章提供了详细的步骤说明和示例代码,帮助读者快速搭建开发环境。 ... [详细]
  • 解决Linux Ubuntu下Ping IP正常但无法Ping域名的问题
    本文介绍了在Linux Ubuntu系统中遇到的一种常见问题——能够Ping通IP地址,但无法Ping通域名,并提供了有效的解决方案。 ... [详细]
  • 在Ubuntu系统上安装搜狗输入法的详细步骤
    本文介绍了如何在Ubuntu操作系统中安装搜狗输入法,包括安装输入框架、下载安装包以及配置输入法的具体步骤。 ... [详细]
  • 本文介绍了Windows驱动开发的基础知识,包括WDF(Windows Driver Framework)和WDK(Windows Driver Kit)的概念及其重要特性,旨在帮助开发者更好地理解和利用这些工具来简化驱动开发过程。 ... [详细]
  • 本文详细记录了一次 HBase RegionServer 异常宕机的情况,包括具体的错误信息和可能的原因分析。通过此案例,探讨了如何有效诊断并解决 HBase 中常见的 RegionServer 挂起问题。 ... [详细]
  • 本文介绍如何使用 Google 开发的 libphonenumber 库在 Java 应用中实现电话号码的有效性验证。该库不仅支持多种国际电话号码的格式化与解析,还提供了一系列强大的验证工具。 ... [详细]
author-avatar
我爱上帝爱我
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有