linux sendmail配置
Linux服务器部署系列之八—Sendmail篇

Linux服务器部署系列之⼋—Sendmail篇Sendmail是⽬前Linux系统下⾯⽤得最⼴的邮件系统之⼀,虽然它存在⼀些不⾜,不过,⽬前还是有不少公司在使⽤它。
对它的学习,也能让我们更深的了解邮件系统的运作。
下⾯我们就来看看sendmail邮件服务器的部署。
本⽂将从以下⼏个⽅⾯讲解Sendmail邮件系统:1.Sendmail安装;2.Sendmail基本配置;3.Openwebmail安装和配置;4.配置Mailscanner+clamav过滤病毒;5.配置SpamAssassin+mimedefang过滤垃圾邮件。
本⽂系统运⾏环境:CentOS 5。
⼀、安装Sendmail1. 软件需求(以下软件在安装光盘上都可以找到)cyrus-sasl-2.1.22-4.i386.rpmcyrus-sasl-lib-2.1.22-4.i386.rpmcyrus-sasl-plain-2.1.22-4.i386.rpmcyrus-sasl-devel-2.1.22-4.i386.rpmcyrus-sasl-md5-2.1.22-4.i386.rpmsendmail-8.13.8-2.el5.i386.rpmsendmail-cf-8.13.8-2.el5.i386.rpmsendmail-devel-8.13.8-2.el5.i386.rpmsendmail-doc-8.13.8-2.el5.i386.rpmm4-1.4.5-3.el5.1.i386.rpmdovecot-1.0.7-2.el5.i386.rpm另外,dovecot需要两外两个程序包的⽀持:perl-DBI-1.52-1.fc6.i386.rpmmysql-5.0.45-7.el5.i386.rpm2. 软件安装1)cyrus-sasl的安装先检查⼀下,系统默认安装了哪些软件包,如下图:安装cyrus-sasl-md5-2.1.22-4.i386.rpm,如下图:2)安装sendmail、dovecot等相关程序包,如下图:Sendmail要正常⼯作,是需要DNS⽀持的,⼀般企业都有DNS服务器,如果没有,可以参考我的另⼀篇⽂章:Linux服务器部署系列之三—DNS篇(/379574/169718),⾃⼰搭建⼀台DNS服务器。
linux sendmail服务

rhel-5.1-server安装sendmail笔记(write by 薛伟民)—QQ:9547143一、sendmail介绍1.检查已安装的sendmail包#rpm –ql |grep sendmail2.配置文件路径#cd /etc/mail/目录下有二个文件,sendmail.cf sendmail.mc3.修改配置文件#vi /etc/mail/senmail.mc4.查找127,修改Addr5.产生配置文件,并且必须安装一个包,否则M4会出错6.修改主机的名字#vi /etc/sysconfig/networkhostname名字为其中sm1为主机名,为域同时注意/etc/hosts文件,应为:192.168.0.8 (对应)重启系统7.测试:#sendmail -d08.启用110,143端口来收取邮件,所以必须启动服务dovecot或者使用如下也可以,功能同dovecot9.测试收发邮件#telnet 25二、实现邮件的群发1.修改/etc/aliases文件2.重新读取aliases文件#newaliases3.测试#mail -s stu49 stu49@三、实现域与域之间的互发1.修改/sendmail.mc修改完毕以后重新M4一下2.启动saslauthd服务该服务主要用于用户间的认证3.建立本机DNS域名解析4.修改/etc/resolv.confNameserver 192.168.0.8 (本机ip)5.测试本机DNS解析这是在其它的机器上测的,所以ip为192.168.0.94 本机上应为192.168.0.86.实现双域间的转发要想实现双域间的转发,必须将别外一个域加入,如图中的是另一台机器建立的域,同时必须将另一台机器的*.zone文件拷过来7.测试#mutt -f imap://a1@#mail -s 标头a1@#telnet 25查看邮件Mail -u a1四、安全模块的加入。
Linux1 邮件服务器 配置Sendmail

Linux1 邮件服务器配置Sendmail完成Sendmail安装操作后,接下来以开放Sendmail监听端口与设置收件计算机名称、使用MTA Relay权限设置/etc/mail/access为目的来对Sendmail邮件服务器进行配置。
1.开放监听端口及设置收件计算机名称事实上Red Hat Enterprise Linux5.4在安装Sendmail后默认已经启动Sendmail (端口25处于LISTEN状态),只是它仅接收来自本计算机的MTA要求,验证此结果可在终端下输入“netstat -tulnp”命令,并按【回车】键查阅,如图9-19所示。
图9-19 查看Sendmail默认端口状态由图9-19可查看到端口25处于LISTEN状态,且只监听127.0.0.1这个lookup 接口。
所以用户的重点就是如何将监听的接口开启到整个Internet上,否则它是无法接收来自Internet的邮件的。
虽然配置文件在/etc/mail/sendmail.cf中,但建议不要手动修改它,应该修改的是sendmail.mc文件。
这个文件设置项目的基本语法为“设置组件(`设置项目’,`参数一’,`参数二’)”。
提示每个设置项目与参数左边使用的符号均为数字键1左边的引用键(quote),右边则是单引号。
这个文件的设置项目用户可以参考/m4/readme.html网页说明。
若要开放Sendmail对整个Internet的监听功能,只需要在终端下输入“vi /etc/mail/sendmail.mc”命令,按【回车】键进入sendmail.mc文件的编辑界面。
然后按“i”,切换到插入模式,将第116行中“Addr=127.0.0.1”改为“Addr=0.0.0.0”,按【ESC】键退出插入模式,最后按“:”并输入wq”按【回车】键保存配置,如图9-20所示。
图9-20 开放Sendmail监听功能修改sendmail.mc参数后,在使用m4宏文件生成器和修改后的配置创建新的sendmail.cf配置文件之前,还需要使用mv命令对原有的设置文件进行备份,这一点很重要,如图9-21所示。
linux mail 命令参数

linux mail 命令参数使用mail发邮件时,必须先将sendmail服务启动。
mail –s “邮件主题”–c”抄送地址”–b “密送地址” -- -f 发送人邮件地址–F 发件人姓名 < 要发送的邮件内容三种常用格式发信mail -s test yangfang@ #第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束echo “mail content”|mail -s test yangfang@ #第二种方法,我用的最多,可能是喜欢管道的缘故吧mail -s test yangfang@ < file #第三种方法,以file的内容为邮件内容发信指定特定的发送人:$ mail -s "just a test" 收信人邮箱地址 < 要发送的邮件内容文件 -- -f 发送人邮件地址 -F 发件人姓名。
效果是: 信件内容将发送给收信人邮箱,显示的发送人为发送人姓名<发送人邮件地址>,显示的内容为发送的邮件内容...包含命令执行结果的MAIL发送:echo -e `ls /tmp`|mail -s "test" fff@ < /tmp/dd.txt -- -f cc@ -F cci 忽略 tty 的中断讯号。
(interrupt)I 强迫设成互动模式。
(Interactive)v 列印出讯息,例如送信的地点、状态等等。
(verbose)n 不读入 mail.rc 设定档。
s 邮件标题。
c cc 抄送邮件地址。
b bcc密送邮件地址。
需要sendmail或postfix服务如果单纯的发文件文件可以用cat xxxx.txt |mail -s "主旨" abc@ fff@ 如果需要发送附件需要安装uuencode来编码 (yum install sharutils)单独发附件,这样xxxx@会收到一个data.txt的附件uuencode /tmp/data_process.log data.txt |mail xxx@如果需要正文和附件一起发:uuencode /tmp/data_process.log data.txt > /tmp/data_temp.txt系统收到邮件都会保存在“/var/spool/mail/[linux用户名]”文件中。
Linux1 邮件服务器 Sendmail所需的软件与软件结构

Linux1 邮件服务器Sendmail所需的软件与软件结构既然Red Hat Enterprise Linux5.4默认以Sendmail为MTA软件,且由MTA来监听Lookup这个端口,所以Sendmail当然是已经安装好的。
但是Sendmail还需要很多额外的软件来辅助处理,至少需要下面几个软件才行。
●Sendmail 提供主要的Sendmail程序与配置文件。
●Sendmail-cf 提供Sendmail.cf这个配置文件的默认整合数据。
●m4 辅助Sendmail将Sendmail-cf的数据转成实际可用的配置文件。
这三个软件存在着相关性,不过如果在安装的时候没有选择完整安装所有软件的话,Sendmail-cf则可能没有被安装,所以建议自行利用rpm以及yum检查,并安装软它。
提示Yum(Yellow dog Updater Modified)是一个源于Linux操作系统和平台中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
几乎所有的Sendmail相关配置文件都在/etc/mail/目录下,主要的配置文件基本上都有以下几个。
1./etc/Mail/Sendmail.cf(/usr/sbin/Sendmail的配置文件)这是Sendmail的主配置文件,所有与Sendmail有关的配置都是靠它来完成的。
不过,这个配置文件的内容很复杂,所以建议不要随意手动修改这个文件。
那么怎样处理额外的设置项目呢?只需交给程序为用户修改即可,所以才需要Sendmail-cf 这个软件。
2./usr/share/Sendmail-cf/cf/*.mc这些文件是Sendmail.cf配置文件的默认参数数据。
由于提示过不要直接手动修改Sendmail.cf,如果想要处理Sendmail.cf时,就需要通过这个目录下的参数来事先准备设置数据。
linux使用mail发送外部smtp邮件linux操作系统-电脑资料

linux使用mail发送外部smtp邮件linux操作系统-电脑资料本文章来给各位同学介绍一篇关于linux使用mail发送外部smtp 邮件,mail函数在linux中需要安装sendmail组件哦,这个大家不要忘记了,否则是不能发邮件的哦,。
说明:linux自带的mail可以实现外部smtp发邮件。
不需要本地配置postfix,sendmail邮件服务器,配置整套下来确实需要点时间。
实现:1.关闭本机的sendmail服务或者postfix服务代码如下复制代码sendmail# service sendmail stop# chkconfig sendmail offpostfix# service postfix stop# chkconfig postfix off2.修改/etc/mail.rc,增加一下类似N行,指定外部的smtp服务器地址、帐号密码等。
代码如下复制代码# cp /etc/mail.rc /etc/mailrc.bak.20131113 # cat /etc/mail.rc //内容如下setfrom=*************set smtp=set smtp-auth-user=123456set smtp-auth-password=sbsbsbsbset smtp-auth=login3.然后通过命令来发送邮件代码如下复制代码# echo hello word | mail -s " title"*************RHEL6下发送邮件没有问题。
但RHEL5下,一直没办法发送。
这是为什么呢?可以先看下RHEL6和RHEL5下mail和mailx的不同RHEL6下代码如下复制代码# rpm -qa|grep mailxmailx-12.4-6.el6.x86_64# ll /bin/mail* //mail链接到mailx,mailx版本为12.4lrwxrwxrwx. 1 root root 5 7月 22 2011 /bin/mail -> mailx -rwxr-xr-x. 1 root root 390424 2月 16 2010 /bin/mailx# mail -V12.4 7/29/08RHEL5下,则发现了一些不同代码如下复制代码# rpm -qa|grep mailxmailx-8.1.1-44.2.2# ll /bin/mail* //mailx链接到mail命令,mailx版本为8.1-rwxr-xr-x 1 root mail 84856 Jun 6 2007 /bin/maillrwxrwxrwx 1 root root 4 Apr 12 18:03 /bin/mailx -> mail # mail -V此处运行就会出错,没有-V这个参数也就是说,在RHEL65下,运行mail和mailx,实际上都是一个命令,而mail版本不同,导致了RHEL5下mail命令无法调用外部SMTP服务器,电脑资料《linux使用mail发送外部smtp邮件linux操作系统》(https://)。
linux mail 用法

linux mail 用法在Linux操作系统中,Mail是一个强大的命令行工具,用于发送和接收电子邮件。
它提供了一个简单而有效的方式来管理个人和企业的电子邮件通信。
下面是关于Linux Mail用法的详细说明。
1. 安装Mail:如果你的Linux系统上还没有安装Mail,请使用适当的包管理器来安装它。
例如,对于Debian或Ubuntu系统,可以使用以下命令安装Mail:```sudo apt-get install mailutils```2. 配置Mail:安装完毕后,首先需要配置Mail以便正确发送和接收邮件。
Mail的配置文件位于`/etc/mail.rc`或`~/.mailrc`文件中。
你可以使用文本编辑器打开一个或两个文件来进行配置。
3. 发送电子邮件:要发送电子邮件,可以使用以下命令:```echo "邮件正文内容" | mail -s "邮件主题" 收件人邮箱地址```例如,要发送一封主题为"Hello"的邮件给`*******************`,可以使用以下命令:```echo "这是一封测试邮件,请勿回复。
" | mail -s "Hello"*******************```你也可以在文件中编写邮件正文内容,并使用`-a`选项添加附件。
4. 接收邮件:Mail还可以用于接收电子邮件。
你可以使用以下命令检查新邮件:```mail```这将显示所有新邮件的列表。
你可以使用数字来查看特定邮件的内容,例如`mail 1`将查看第一封邮件的详细信息。
要删除指定的邮件,可以在邮件列表中使用`d`命令,然后按照提示操作。
5. 邮件管理:Mail提供了一些命令和快捷键来管理邮件。
例如:- `d`:删除选定的邮件- `u`:标记选定的邮件为未读- `s`:保存选定的邮件到一个文件- `/`:搜索邮件列表中的关键词这些命令使得邮件的管理变得更加方便。
Linux1 邮件服务器 配置sendmail.cf

Linux1 邮件服务器配置sendmail.cfsendmail.cf文件是sendmail每次启动时要读取的配置文件。
它包含了sendmail 启动时必须的信息。
它列出了所有重要文件的位置,指定了这些文件的缺省权限。
包含了一些影响sendmail行为的选项。
更重要的是,它还包含了地址重写(rewriting addresses)规则。
sendmail.cf文件是按行组织的。
每一个配置命令行都是由命令加上特定参数构成的,例如命令V的参数是一个数字,而F命令的参数则是字母w,再加上绝对路径,如图9-35中第70、91行所示。
图9-35 sendmail.cf配置命令行提示在对sendmail.cf文件进行配置时,必须保证每个配置命令行只能有一个命令,且位于该命令行行首(不存在空格),否则配置将不生效。
在该文件中如果行首的第一个字符为“#”,表示该行为注释;如果第一个字符为空格则表示该行为上一行的延续。
除此之外,行首的第一个字符均为命令,但是命令同变量或值之间没有间隔。
这种格式便于sendmail进行分析,但令很难使用户读懂。
下面介绍一下sendmail.cf配置文件中的命令。
1.D(定义宏)命令D定义宏并为其赋值。
当宏被定义之后,它就负责提供提供其存储的值给sendmail.cf文件中其他的命令使用或者直接提供给sendmail使用。
宏的名字可以是任何单字符,小写的用于sendmail内部宏,用户创建的宏只能使用大写字母作为名字。
一些sendmail的内部宏也在sendmail.cf文件里定义。
例如在配置文件中的第148、149两行定义了宏D和内部宏n,如图9-36所示。
图9-36 定义宏D和内部宏n那么宏D的值为,宏n的值为MAILER-DEAMON。
但若要使用宏的值时,还必须在宏的名字前面加上符号“$”,以这种形式来引用它的值。
例如图9-37配置文件中第150行设置。
图9-37 应用宏的值如果宏w的值为主机名moon,此时宏j的值就为,这便是本主机的全称名(FQDN)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
linux
邮件服务器(sendmail)
1.简介
sm tp sm tp pop3
2.分类
<1>sendmail
<2>q mail
<3>webmail
3.使用的协议
sm tp:(simple message transport protocol)简单消息传输协议
pop3:(post office protocol3)邮局协议3
4.术语
MTA: Mail Transport Agent 邮件传输代理,即指邮件服务器;MUA: Mail User Agent 邮件用户代理,如: outlook,foxmail等;
5.sendmail的服务器包
sendmail-8.13.8-2.el5.i386.rpm
sendmail-devel-8.13.8-2.el5.i386.rpm
sendmail-cf-8.13.8-2.el5.i386.rpm
sendmail-doc-8.13.8-2.el5.i386.rpm
#rpm –q sendmail
//安装sendmail的软件包
#rpm -ivh sendm ail-devel
#rpm –ivh sendmail-cf
#rpm –ivh doc
6.配置邮件服务器
<1>//修改sendmail的配置文件
#cd /etc/m ail
//用m4命令编译生成sendmail.cf文件
#m4 sendmail.m c>sendmail.cf
备注:假如以上命令无效,请安装包:
m4-1.4.5-3.el5.i386.rpm
//修改主配置文件
#vi /etc/m ail/sendmail.c f
//修改第265行,打开全网段邮件收发功能,将127.0.0.1改为0.0.0.0,如:
//修改本地主机名
#vi /etc/m ail/local-host-nam es
添加
//加入允许本网段中继转发邮件功能
#vi /etc/m ail/access
添加
Connect:192.168.1 RELAY
参数,有三种状态,如下:
RELAY : 接收并转发
OK : 只收不转发
REJECT: 拒绝邮件
//编译生成访问控制的库文件
#cd /etc/m ail
#makemap hash access.db<access
//启动邮件服务器
#service sendm ail restart
//打开邮件收发协议
#rpm -ivh dovecot-1.0-1.2.rc15.el5.i386.rpm
//激活文件/etc/dovecot.conf中第17行
#vi /etc/dovecot.conf
去掉前面的“#”
protocols =imap imaps pop3 pop3s
//启动协议的服务
这一步要重启服务两次
#service dovecot restart
//收发邮件测试
<1>首先创建两个用户user1和user2并设置密码passwd user1/passwd user2
<2>查看本机ip
<3>打开本地outlook进行账户设置
这里的不是新浪,而是sendmail服务器主机的别名
Sendmail服务器IP地址
点击完成。
<4>然后创建一封发给user1的信件
1、关闭Sendmail的Relay功能
所谓Relay就是指别人能用这台SMTP邮件服务器,给任何人发信,这样别有用心的垃圾发送者可以使用笔者单位的这台邮件服务
器大量发送垃圾邮件,而最后别人投诉的不是垃圾发送者,而是单位
的服务器。
所以必须关闭Open Relay,其方法就是到Linux服务器
的/etc/mail目录,编辑access文件,去掉“*relay”之类的设置,一般只留“localhost relay”和“127.0.0.1 relay”两条即可。
注意:修改access文件后还要用命令makemap hash access.db<access 使修改生效。
2.打开Sendmail的SMTP认证功能
关掉了Relay功能,单位的老师就不能使用OE之类的软件发信了 不要紧,只要对Sendmail配置好SMTP认证功能,再在OE中打开SMTP认证,就可以在任何地方使用单位的SMTP服务器了。
在RedHat Linux 9.0中配置SMTP认证非常方便,首先用命令rpm -qa|grep sasl检查有没有安装cyrus-sasl软件包(一般默认安装已经包括了)。
如果没有安装的话,用命令rpm -ivh cyrus-sasl .rpm 安装所有软件包,接着打开/etc/mail/sendmail.mc文件,把如下三行:dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,
Name=MTA')
改为
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS',`DIGEST-MD5
CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,
Name=MTA')
3、RBL(Realtime Blackhole List)是实时黑名单。
国外有一些机构提供RBL服务,它们把收集到的专发垃圾邮件的IP地址加入他们的黑名单,我们只要在Sendmail中加入RBL认证功能,就会使我们的邮件服务器在每次收信时都自动到RBL服务器上去查实,如果信件来源于黑名单,则Sendmail会拒收邮件,从而使单位的用户少受垃圾邮件之苦。
国外比较有名的RBL是http //,他们的RBL可免费使用,去年国内的http //也提供类似的服务,但它必须先注册才能使用 免费。
在Sendmail中添加RBL认证,只要对sendmail.mc添加以下几句话(第一句表示加入了的RBL服务,第二句表示加入了ANTI-SPAM的RBL服务,注意第二条必须先去该网站注册后才能使用。
如果还想加入其它的RBL认证,则将这样的话再多加几句即可,一般加入两个RBL认证也够了):
①FEATURE(`dnsbl',`',`″Email blocked using - see <http:///lookup/﹖
host=″$&{client_addr}″>″')
②FEATURE(`dnsbl',`',`',`″451
Temporary lookup failurefor ″ $&{client_addr}″ in
″')
最后执行m4 sendmail.mc>sendmail.cf和service sendmail
restart两条命令,使有关Sendmail的修改生效。
使用SpamAssassin防止垃圾邮件
SpamAssassin预设了许多默认规则,可以在/usr/share/spamassassin中找到。
添加白名单
/etc/mail/spamassassion/local.cf进行配置。
添加:
Whitelist_from_rcvd people@
procmail是一个强大得惊人的过滤进入邮件的应用程序。
它允许用户定义“规则”,并用这些规则来匹配进入的邮件,进而执行某些特定的功能,或将这些邮件转发到其他信箱和/或邮件地址。
procmail可以通过mail/procmail port 来安装。
装好之后,可以直接把它集成到绝大多数 MTA 中;请参考您使用的 MTA 的文档了解具体的作法。
另外,procmail可允许通过把下面的设置加入到用户主目录中的.forward文件中,来启用procmail功能:
接下来我们将介绍一些基本的procmail规则,以及它们都是做什么的。
各种各样的规则,都应该写到.procmailrc文件中,而这个文件则必须放在用户的主目录下。
主要的规则,也可以在procmailex(5)联机手册中找到。
将所有来自 <user@> 的邮件,转发到外部地址
<goodmail@>:
转发所有不超过 1000 字节的邮件到外部地址 <goodmail@>:
把所有发送到 <alternate@> 的邮件放到信箱alternate中:
将所有标题为“Spam” 的邮件发到/dev/null:
将收到的所有 邮件列表的邮件,转发到各自的信箱:。