linux sendmail配置

合集下载

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服务

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

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 命令参数

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所需的软件与软件结构

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邮件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是一个强大的命令行工具,用于发送和接收电子邮件。

它提供了一个简单而有效的方式来管理个人和企业的电子邮件通信。

下面是关于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.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)。

Linux简单配置SendMail发送邮件

Linux简单配置SendMail发送邮件

Linux简单配置SendMail发送邮件本⽂简单整理了⼀下如何在Linux服务器上安装、配置SendMail发送邮件的步骤,此⽂不是配置邮件服务器,具体测试环境为CentOS Linux release 7.2.1511 (Core) ,如遇特殊平台有所差别,请以实际情况为准则。

Linux 系统版本查看检查、了解系统版本信息,主要是如果使⽤rpm安装时,需要下载合适的版本。

[root@mylnx06 ~]# more /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core)检查是否安装sendmail组件如下所⽰,该服务器上并没有安装sendmail的相关组件。

那么我们直接使⽤yum安装sendmail组件即可。

[root@mylnx06 ~]# rpm -qa | grep sendmail[root@mylnx06 ~]# yum list sendmailLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile* epel: .hkAvailable Packagessendmail.x86_64 8.14.7-4.el7 base使⽤yum安装sendmail组件,当然你可以使⽤其它⽅式安装,此处不做展开介绍。

[root@mylnx06 ~]#编辑/etc/aliases⽂件Sendmail有⼀个⾮常实⽤的功能,就是为每个账号取别名(Aliase) 会使⽤⼀个在 /etc/aliases 中的档案做使⽤者名称转换的动作。

所以这个配置⽂件是可配也可以不配,具体视你的需求⽽定。

修改/etc/mail/sendmail.cf 添加对应的DS, DS后⾯为邮件服务器的IP地址。

根据实际具体情况配置。

其实这个配置⽂件,如果需要,还有蛮多需要配置、细化的地⽅,此处只讲述最简单的配置。

Linux1 邮件服务器 启动和停止Sendmail服务

Linux1 邮件服务器  启动和停止Sendmail服务

Linux1 邮件服务器启动和停止Sendmail服务安装Sendmail服务器配置之后,接下来需要做的就是启动Sendmail服务确保设置参数生效。

不过linux/unix等系统自带的mail应用,在多数情况下并不需要启用(默认是启用的),但有时会因此而产生不少的安全漏洞(如大量垃圾邮件的干扰),所以在通常情况下将停止(/etc/init.d/sendmail stop)这些系统的Sendmail服务。

在/etc/init.d目录中的脚本文件sendmail是控制Sendmail服务的,通过参数start、stop和restart可控制Sendmail服务的启动、停止和重启。

1.启动Sendmail服务若要启动Sendmail服务,只需在终端中输入“/etc/init.d/sendmail start”命令并按【回车】键,如图9-27所示。

图9-27 启动Sendmail服务或者在终端中,输入“service sendmail start”命令并按【回车】键,同样可以启动Sendmail服务,如图9-28所示。

图9-28 启动Sendmail服务2.自动启动Sendmail服务如果需要让Sendmail服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“sendmail”服务,在其前面加上星号(*),然后选择“确定”即可,如图9-29所示。

图9-29 自动启动Sendmail服务3.重启Sendmail服务重启Sendmail服务,只需在终端中输入“/etc/init.d/sendmail restart”命令并按【回车】键,如图9-30所示。

图9-30 重启Sendmail服务或者在终端中,输入“service sendmial restart”命令并按【回车】键,重启Sendmail 服务,如图9-31所示。

图9-31 重启Sendmail服务4.停止Sendmail服务若要停止Sendmail服务,只需在终端中输入“/etc/init.d/sendmail stop”命令并按【回车】键,如图9-32所示。

sendmail命令参数

sendmail命令参数

Sendmail命令是一款著名的电子邮件传送代理程序,也就是平常说的电子邮件服务器,它基于标准的简单邮件传输协议(SMTP)。

Sendmail命令的参数如下:
* `-bd`:以守护进程方式运行指令。

* `-bD`:以前台运行方式运行。

* `-bi`:初始化别名数据库。

* `-bm`:以常规发送电子邮件。

* `-bp`:显示邮件的发送队列。

* `-C`:指定配置文件。

* `-D`:将调试的输出信息保存到日志文件,而不显示在标准输出设备上。

* `-F`:指定邮件发送者全名。

* `-n`:禁止使用邮件别名功能。

* `-f`:指定发件人的名字。

* `-q`:设置处理邮件队列中邮件的时间间隔。

以上参数仅供参考,具体参数可能会因操作系统或版本的不同而有所差异。

建议查阅Sendmail的官方文档或使用“man sendmail”命令来获取更多信息。

linux 发送邮件方法

linux 发送邮件方法

linux 发送邮件方法Linux 发送邮件方法在Linux系统中,我们可以使用各种工具来发送邮件。

本文将介绍如何使用命令行和邮件客户端来发送邮件,以及如何配置SMTP服务器和邮件检查程序。

一、使用命令行发送邮件1. 安装发送邮件的工具首先,需要安装sendmail或者Postfix来发送邮件。

在大多数Linux发行版中,sendmail或者Postfix已经预装了,如果没有安装,可以使用包管理工具进行安装。

2. 配置SMTP服务器在开始之前,我们需要配置SMTP服务器。

在大多数情况下,ISP(互联网服务提供商)会提供SMTP服务器的配置信息。

您可以在网上搜索相关信息或咨询ISP获取相关配置信息。

3. 编写邮件内容在发送邮件之前,需要先编辑邮件内容。

您可以使用文本编辑器(如vi、nano等)在终端中创建新文件,并在文件中编写您的邮件内容。

请确保邮件内容清晰、简洁,以提高阅读体验。

4. 使用命令行发送邮件发送邮件的命令行工具有两个常用的选项,分别是mail和sendmail。

具体使用哪一个取决于您的系统配置和个人偏好。

如果您使用的是mail命令,请使用以下命令发送邮件:mail -s [主题] [收件人邮箱] < [邮件内容文件名]如果您使用的是sendmail命令,请使用以下命令发送邮件:sendmail [收件人邮箱] < [邮件内容文件名]请注意,其中[主题]是您邮件的主题,[收件人邮箱]是您要发送给的邮箱地址,[邮件内容文件名]是您保存邮件内容的文件名。

5. 输入邮件密码当您运行发送命令时,系统可能会提示您输入SMTP服务器的用户名和密码。

请按照提示输入正确的用户名和密码,以便成功发送邮件。

二、使用邮件客户端发送邮件除了命令行工具,您还可以使用邮件客户端发送邮件。

1. 安装邮件客户端Linux系统提供了多种邮件客户端,您可以根据需求选择适合自己的客户端。

一些常用的邮件客户端有Thunderbird、Evolution和Claws Mail。

Linux服务器实用教程sendmail

Linux服务器实用教程sendmail

2. 启动Sendmail
3. 配置DNS的MX记录
$TTL 86400 @ IN SOA . root.localhost ( 2 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttl ) IN NS . @ IN MX 1 computer computer IN A 211.85.203.22
(1)SMTP协议
SMTP(Simple Mail Transfer Protocol,简 单邮件传输协议)是Internet上基于TCP/IP应用 层的协议,适用于主机之间电子邮件交换。
使用SMTP时,收信人可以是和发信人连接在同一个 本地网络上的用户,也可以是Internet上其它网络的用户, 或者是与Internet相连但不是TCP/IP网络上的用户,
3 邮件服务器(E-mail)
3.1 概述 电子邮件(Electronic mail)服务是Internet网络为用户 提供的一种最基本的、最重要的服务之一。 电子邮件将邮件发送到收信人的邮箱(mail box)中, 收信人可随时读取邮件。 电子邮件有非常高的效率。
1 E-mail的工作原理
在Internet网上,一封电子邮件的实际传递过程如下: (1)由发送方计算机(客户机)的邮件管理程序将邮件进 行分拆,即把一个大的信息块分成一个个小的信息块,并把 些小的信息块封装成传输层协议(TCP层)下的一个或多个 TCP邮包(分组)。 (2)TCP邮包又按网际层协议(IP层)要求,拆分成IP邮 包(分组),并在上面附上目的计算机的地址(IP地址)。
2. E-mail的地址
完整的电子邮件地址由二部分组成,第一部分为计算机上 的邮箱,第二部分为计算机。一种广泛使用的格式是用 “@”隔开二部分,例如: lb@

杨海艳-主讲-linux之sendmail配置步骤截图

杨海艳-主讲-linux之sendmail配置步骤截图

sendmail的配置步骤讲解说明主讲人:杨海艳示例:配置一个基于域的邮件系统主机IP地址192.168.23.119修改主机名:然后通过:hostname 命令修改主机名。

修改:/var/named/chroot/etc/named.cach---文件1、修改/var/named/chroot/etc/named.rf---文件2、在/vav/named/chroot/var/named/下建立.zone文件Cd /vav/named/chroot/var/named/Cp localhost.zone .zone 复制样本文件Chmod 777 .zone 修改文件权限修改文件:vim .zone3、重启域名服务:service named restart通过nslookup检查结果:4、查询相关软件是否安装:一共4个软件,可以一起查询。

5、修改相关文件:Cd /etc/mail/Vim sendmail.mc需要修改的地方:127.0.0.1 改为0.0.0.0通过:/127 可以搜索到127的,改为如下所示:然后再搜索:TRUSH关键字:把前面的dnl 和空格注释符去掉。

如下所示:(2行哟!!!)接着修改access文件:Vim /etc/mail/access添加最后两行保存退出,然后重新生成access.db :makemap hash access.db < access然后修改/etc/mail/local-host-namesVim /etc/mail/local-host-names 添加域名最后重新生成sendmail.cf6、创建邮件账户:yang3 和li4 都不允许本地登录创建邮件别名:Vim /etc/aliases 在最后添加两行:yang3的别名laoban yang3和li4的别名teacher 发往laoban的邮件yang3能收到,发往teacher的邮件yang3和li4都能收到。

linux下架设邮箱 配置篇一[sendmail]

linux下架设邮箱 配置篇一[sendmail]

A、sendmail.mc配置批注vi /etc/mail/sendmail.mcdivert(-1)dnl在生成配置文件时删除额外的输出。

dnl #dnl # This is the sendmail macro config file for m4. If you make changes todnl # /etc/mail/sendmail.mc, you will need to regenerate thednl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package isdnl # installed and then performing adnl #dnl # make -C /etc/maildnl #这是m4的sendmail宏观设置文件。

如果您做变动/etc/mail/sendmail.mc,您将需要通过认证安装的sendmail-cf包执行make -C /etc/mail命名生成/etc/mail/sendmail.cf文件。

include(`/usr/share/sendmail-cf/m4/cf.m4')dnl将sendmail所需的规则包含进来。

VERSIONID(`setup for linux')dnl指出配置文件是针对linuxOSTYPE(`linux')dnl必须设置为linux以获得sendmail所需文件的正确位置。

dnl #dnl # Do not advertize sendmail version.dnl #dnl define(`confSMTP_LOGIN_MSG', `$j Sendmail; $b')dnldnl #dnl # default logging level is 9, you might want to set it higher todnl # debug the configurationdnl #默认的日志记录级别为9,您可能希望将其设置较高级别,则调整这个配置dnl define(`confLOG_LEVEL', `9')dnldnl #dnl # Uncomment and edit the following line if your outgoing mail needs todnl # be sent out through an external mail server:dnl #如果你需要通过外部邮件服务器发送的邮件的,取消注释和编辑以下行。

linux sendmail配置详解

linux sendmail配置详解

sendmailMUA (mail user agent 邮件用户代理),用于用户端发送邮件或者阅读邮件 linux有mutt这个工具MTA (mail tranfer agent 邮件传输代理),相当于一个邮局,server端的软件,主要的功能有,接收MUA发来的邮件和把邮件发送给下一个MTA,可以说是一个邮件路由(mail router),server端的软件就属于MTA,现在开源的有sendmail,postfix,qmail等MDA (mail devilery agent 邮件投递代理),主要是将MTA所接受的邮件,依照邮件的目的地将此邮件放到本机账号下或者是给下一个MTA,一般就是指mail 这样的命令邮件的协议:发信: SMTP (simple mail tranfer protocol 简单邮件传输协议)端口号TCP的25端口,在发信时,MUA会主动连接MTA的port 25,然后经由SMTP协议发送出去,SMTP分为接受SMTP和发送SMTP,它不管两端主机的配置或者系统等,只要两边SMTP协议OK就可以发送邮件收信: POP (post office protocol 邮局协议),来连接到MTA,以读取或者下载邮件,现在常用的版本是POP3,端口为110IMAP (internet message access protocol 网络报文件协议),能在下载邮件前先下载邮件头信息,以可以让用户选择性下载端口 143软件包yum install sendmail*yum install dovecotsendmail.i386 --邮件服务器端 MTA sendmail-cf.i386 --配置文件包sendmail-devel.i386 --开发包sendmail-doc.i386 --文档包dovecot.i386 --(鸽舍),pop邮件服务端 MDAm4.i386 --处理配置文件的包端口: smtp (25) pop3 (110) imap (143)协议: TCP服务启动脚本:/etc/init.d/sendmail/etc/init.d/dovecot配置文件:/etc/mail/sendmail.cf --sendmail邮件服务启动时读取的主配置文件/etc/mail/sendmail.mc --管理员修改sendmail服务器功能时的配置文件/etc/mail/local-host-names --配置支持发送邮件时使用短域名形式/etc/mail/virtusertable --虚拟用户列表/etc/aliases --用户别名/etc/mail/access --邮件中继/etc/init.d/sendmail restart[root@li ~]# netstat -ntl |grep 25 --看到默认是只监听了127.0.0.1的回环地址tcp 0 0127.0.0.1:25 0.0.0.0:* LISTEN--发送邮件方法一:[root@li ~]# mail -s "mail" root@ --用此命令发送邮件 -s 后接邮件主题1111 --写邮件内容. --“." 点号表示结束Cc: --直接回车退出[root@li ~]# mail -s 'yyyy' a@ < /etc/grub.conf --还可以这样把/etc/grub.conf的内容直接发送给a用户--查看邮件方法一:cat /var/mail/rootcat /var/spool/mail/root --查看这两个一样的这样是可以查看到刚才发送的邮件,因为一个是自己发送给自己用的127.0.0.1这个回环地址,这种情况不需要DNS的MX支持--发送邮件方法二:[root@li ~]# telnet 127.0.0.1 25 --对smtp协议进行验证Trying 127.0.0.1...Connected to localhost.localdomain (127.0.0.1).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 11:30:09 +0800helo --定义来访者,可以用help去查看支持哪些命令集,用help+命令来看单个命令如何使用250 Hello localhost.localdomain [127.0.0.1], pleased tomeet youmail from:aa@ --定义一个发送者,这里可以随便定义250 2.1.0 aa@... Sender okrcpt to:a@ --定义接收者,这里是我本机的a用户250 2.1.5 a@... Recipient okdata --表示下面要写邮件内容354 Enter mail, end with "." on a line by itself4444444444 --随便写上你要发送的邮件的内容. --"." 点号表示结束250 2.0.0 o4T3U9l1026581 Message accepted for deliveryquit --quit退出,有时候一次退不出,就多敲几次quit221 2.0.0 closing connectionConnection closed by foreign host.yum install muttmutt --是一个在unix-like系统下小巧但强大的基于文本的一个能发送和阅读邮件的工具(MUA)--查看邮件方法二:直接在root用户下使用mutt命令,可以看到root用户的收信箱如果要看普通的邮件,就要先su - 普通用户名切换到普通用户再使用mutt命令查看--发送邮件方法三:[root@li ~]# mutt a@ --可以直接使用这样的命令发送给a@,会提示用户写内容,还有附件等功能--发送邮件方法四:[root@li ~]# cat /etc/rc.local |sendmail -v a@-------------------------下面先把DNS的MX记录给配置好[root@li mail]# vim/var/named/chroot/var/named/data/.zone$TTL 86400@ IN SOA . . ( 2010051605606036086400)IN NS .IN MX 0 . --MX是邮件交换记录,0是代表优先级别,可以写多个,数字越小优先级越高li IN A 10.1.1.35pop IN A 10.1.1.35smtp IN A 10.1.1.35/etc/init.d/named reloadvim /etc/resolv.conf --DNS指向改为本机[root@li mail]# nslookup --验证MX记录的方法> set type=mx> Server: 10.1.1.35Address: 10.1.1.35#53 mail exchanger = 0 . --看到这样的信息表示成功最好把时间同步也配好[root@li mail]# echo 'while :; do ntpdate 10.1.1.1> /dev/null 2>/dev/null; sleep 10; done'>> /etc/rc.local--每十秒同步一次10.1.1.1,放到/etc/rc.local里,开机自动运行把邮件客户端软件claws-mail拷过去装好ls /share/soft/soft/mail_client/tar xvf /share/soft/soft/mail_client/claws-mail-3.5.0.tar.gz -C/usr/src/tar xvf /share/soft/soft/mail_client/libetpan-0.57.tar.gz -C /usr/src/ cd /usr/src/libetpan-0.57/./configure ;make ;make installcd /usr/src/claws-mail-3.5.0/./configure ;make ;make install例一:让smtp协议监听所有端口vim /etc/mail/sendmail.mcDAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl --把127.0.0.1改为0.0.0.0,或者是把中间那一小段去掉保存退出m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf --如果没有装m4.i386这个包,就需要使用m4命令去生成sendmail.cf配置文件,装了就不需要,重启sendmail服务自动生成/etc/init.d/sendmail restart[root@li claws-mail-3.5.0]# netstat -ntl|grep 25tcp 0 00.0.0.0:25 0.0.0.0:* LISTEN[root@li claws-mail-3.5.0]# telnet 10.1.1.35 25 --对本机的IP(非回环地址)做smtp协议的测试是可以做的,如果只监听127.0.0.1,就不能这样用IP测试Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 13:47:01 +0800helo 250 .................例二:用claws-mail收发邮件用claws-mail 发送一封邮件给本机用户,能写,但点收信时会报连接到:110失败原因检验:[root@li /]# nslookup --先查看DNS,能解析Server: 10.1.1.35Address: 10.1.1.35#53Name: Address: 10.1.1.35netstat -ntl |grep 110 --再查看端口,发现没有110端口,表示pop3协议没有配置所以要去配置dovecot服务[root@li /]# vim /etc/dovecot.confprotocols = imap imaps pop3 pop3s --在20行找到有一行注释,打开注释,或者写一行,表示支持pop3和imap协议/etc/init.d/dovecot restart --重启服务后,就可以看到监听143和110端口打开了[root@li /]# netstat -ntlup |grep 143tcp 0 0 :::143 :::* LISTEN 21674/dovecot[root@li /]# netstat -ntlup |grep 110tcp 0 0 :::110 :::* LISTEN 21674/dovecot然后就可以收邮件了例三:使用支持短域名来发送邮件[root@li /]# mail -s '222' a@ --使用短域名222222.Cc:[root@li /]# tail /var/mail/a --查看时看不到,表示不支持短域名[root@li /]# tail /var/mail/root --可以看到扔到root的邮箱去了配置方法:[root@li /]# vim /etc/mail/local-host-names --写上短域名--注意的是写的域名,最好是DNS能解析,否则测试失败/etc/init.d/sendmail reload再用短域名发送并测试发现是可以成功的例四:邮件别名,邮件转发,邮件群发[root@li /]# vim /etc/aliases加上a: b --表示发送给a用户的邮件,发给了b用户,a用户自己收不到c: d,e,f --表示发送c用户的邮件,发给了d,e,f三个用户,a用户自己收不到salegroup: :include:/etc/mail/salegroup --还可以这样写,把一些用户分组,注意/etc/mail/salegroup是不存在的,要手动建立并把这个组的成员写进去,一行一个用户;测试时发给的用户名要写成salegroup,例如:mail -s '7777' salegroup@/etc/init.d/sendmail reload例五:邮件的虚拟账号,虚拟用户表格[root@li /]# vim /etc/mail/virtusertablea@ b@ --把b@的账号虚拟成a@账号@ c --所有发往域的邮件都会发到本地的c用户的mailbox/etc/init.d/sendmail reload例五:邮件中继保持上面的配置不变的情况下,用另一台电脑做测试[root@dns ~]# telnet 10.1.1.35 25 --另一台电脑测试35这台服务器上的smtp 协议Trying 10.1.1.35...Connected to 10.1.1.35 (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 15:39:36 +0800helo 250 Hello [10.1.1.218], pleased to meet youmail from:sdfsa@250 2.1.0 sdfsa@... Sender okrcpt to:sfsadfa@550 5.7.1 sfsadfa@... Relaying denied. --可以看到中继拒绝[root@li /]# vim /etc/mail/access --默认是只允许127.0.0.1中继Connect:10.1.1.218 OK --非常信任的主机可以用OKConnect:10.1.1 RELAY --表示允许10.1.1.0网段中继FROM: REJECT --表示从来的邮件都拒绝TO: discard --到的邮件丢弃--reject和discard的区别,discard是直接丢弃,reject还要返回一个错误或者警告我在这里加上了Connect:10.1.1 RELAY/etc/init.d/sendmail reload再用刚才的另一台电脑来测试(要是10.1.1.0网段,因为上面我只允许这个网段relay)[root@dns ~]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to 10.1.1.35 (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 15:51:35 +0800helo dns.lu.con250 Hello [10.1.1.218], pleased to meet youmail from:sfsafa@250 2.1.0 sfsafa@... Sender okrcpt to:sdfsadf@250 2.1.5 sdfsadf@... Recipient ok --这次测试没有报relay deny的错误------------------------------------------------------------------- 使用smtp验证yum install cyrus-sasl*vim /etc/mail/sendmail.mc --把下面三行注释打开TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnlDAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl/etc/init.d/sendmail restart/etc/init.d/dovecot restart/etc/init.d/saslauthd restart[root@li /]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 16:42:54 +0800ehlo --注意这里是ehlo 不是 helo Hello [10.1.1.35], pleased to meet you 250-ENHANCEDSTATUSCODES250-PIPELINING250-8BITMIME250-SIZE250-DSN250-ETRN250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN --看到这里有login plain验证信息表示支持smtp验证250-DELIVERBY250 HELP验证:[root@li /]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 16:45:12 +0800helo 250 Hello [10.1.1.35], pleased to meet youmail from:fsfafa@250 2.1.0 fsfafa@... Sender ok --这里没有要求验证原因:是因为smtp验证默认只是在587端口,而不是25端口,所以你还是直接telnet 10.1.1.35 25 就避开了使用smtp验证vim /etc/mail/sendmail.mc把下面这句DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl改为DAEMON_OPTIONS(`Port=25, Name=MSA, M=Ea')dnl然后还要DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl --把这名注释掉,注意注释时用dnl,不用#--表示强制使用smtp验证/etc/init.d/sendmail restart[root@li /]# telnet 10.1.1.35 25Trying 10.1.1.35...Connected to (10.1.1.35).Escape character is '^]'.220 ESMTP Sendmail 8.13.8/8.13.8; Sat, 29 May 2010 16:55:58 +0800helo 250 Hello [10.1.1.35], pleased to meet you mail from:sfsafsa@530 5.7.0 Authentication required --现在就会看到需要验证auth login --开始验证334 VXNlcm5hbWU6a --输入用户名,会报错,因为这里是用base64位编码501 5.5.4 cannot decode AUTH parameter aauth login334 VXNlcm5hbWU6YQ== --这就是a的base64位编码334 UGFzc3dvcmQ6MTIz --这是123的base64位编码235 2.0.0 OK Authenticated --验证成功,可以发送邮件了mail from:sdfasfas@250 2.1.0 sdfasfas@... Sender okrcpt to:b@250 2.1.5 b@... Recipient okdata354 Enter mail, end with "." on a line by itselflast test.250 2.0.0 o4T8twFU025598 Message accepted for deliveryquit221 2.0.0 closing connectionConnection closed by foreign host.cat /var/mail/b 是可以看到发送的邮件---------------用claws-mail来验证点设置--目前账号的偏好设置--发送--把SMTP鉴权(SMTP AUTH)前面的勾打上--鉴权方式选PLAIN--用户ID和密码写上本机的一个普通名和其密码就OK再发送信件等都是经过了SMTP验证的。

Sendmail基础配置和smtp命令学习

Sendmail基础配置和smtp命令学习

Sendmail基础配置和smtp命令学习本文接上文:搭建一台健壮的E-mail服务器—基础知识和概念学习Linux平台的电子邮件首先要学的肯定是sendmail,但是随着时间推移,Sendmail变得越来越庞大。

并且很多现代化的功能,Sendmail也无法继续支持。

取而代之的是新秀Postfix,它具有体积小,功能强大,并且是公认的最安全的MTA。

Redhat公司也将Postfix作为默认的MTA集成在RHEL中。

但是,在大多数联网的Unix/Linux主机中,Sendmail使用默认配置即可完成向外界发送邮件的功能。

大大方便了系统管理员。

下面将通过系统默认配置的Sendmail讲述SMTP command命令。

在这一节中,将引进一个新词“只发不收”。

说白了就是有这么一种服务器。

发件人通过它发出去的邮件,收件人无法通过“回复”功能回复邮件。

即便回复了,发件人也收不到。

这时或许就有人疑惑了,那这种电子邮件系统有什么用啊?我告诉你,这种邮件系统太有用了。

做过Linux系统管理员的人都有这么一个体会,每天登录各种服务器,查看性能参数。

服务器数量少了还好处理一些。

随着服务器数量的增多,往往会忘记登录哪台服务器。

为了解决这种问题,往往在服务器上编写各种脚本,收集服务器性能参数,通过电子邮件的形式发送给自己。

这种情况下,服务器只发送邮件,不接收邮件!配置“只发不收”型的邮件服务器非常简单,如下所示。

Sendmail安装启动安装base软件组,启动Sendmail服务。

这里作者并不设置Sendmail的开机启动,因为接下来就会将MTA切换到Postfix。

没必要费功夫设置这个!yum groupinstall base -yservice sendmail start查看Sendmail服务器是否运行[root@localhost ~]# service sendmail statussendmail (pid 1691) is running...sm-client (pid 1700) is running...邮件服务器必须配置一个全后缀主机名,因为邮件服务器是通过DNS的MX记录解析的。

在Linux上使用Shell脚本实现邮件发送

在Linux上使用Shell脚本实现邮件发送

在Linux上使用Shell脚本实现邮件发送邮件是我们日常生活中重要的沟通工具之一,而在Linux系统中,我们可以通过编写Shell脚本来实现自动化的邮件发送。

本文将介绍如何使用Shell脚本在Linux上实现邮件发送的方法。

一、Shell脚本编写准备在开始编写Shell脚本之前,我们首先需要确保系统已经安装了邮件发送的相关组件,通常情况下,邮件发送需要使用到sendmail命令。

我们可以通过以下命令来检查系统是否已经安装了sendmail:```which sendmail```如果返回sendmail的安装路径,则说明系统已经安装了sendmail组件。

如果未安装,我们可以通过以下命令来安装sendmail:```sudo apt-get install sendmail```安装完成后,我们可以创建一个新的Shell脚本文件,以便后续编写实现邮件发送的代码。

二、编写Shell脚本实现邮件发送在Shell脚本文件中,我们可以使用sendmail命令来实现邮件发送。

例如,我们可以编写以下代码实现发送一封简单的邮件:```shell#!/bin/bashto="*********************"subject="测试邮件"body="这是一封测试邮件"echo -e "To: $to\nSubject: $subject\n\n$body" | sendmail -t```在上述代码中,我们首先定义了邮件的收件人(to)、主题(subject)和正文内容(body)。

然后,使用echo命令将邮件内容传递给sendmail命令,并通过管道符号将输出重定向到sendmail命令中。

请注意,上述代码中的邮件正文内容(body)可以根据实际需求进行修改,甚至可以读取外部文件来获取邮件内容。

三、可选配置项除了基本的邮件发送功能,我们还可以通过添加一些可选配置项来进一步定制我们的邮件发送。

sendmail发送邮件显示代发解决方案

sendmail发送邮件显示代发解决方案

sendmail发送邮件显⽰代发解决⽅案在⽹站上很多地⽅都需要发送邮件,如⽤户的激活,找回密码等,因此发送邮件是站点的基本需要。

之前使⽤虚拟主机构建站点的时候⽤phpmailer通过smtp协议来发送邮件。

现在有了⾃⼰的服务器,就可以考虑⾃⼰搭建服务器来发送邮件,好处⼀是发送⼈可以设置为诸如‘admin@’之类增加可信度,另外⼀个则是能够提⾼发送邮件的速度。

sendmail是linux系统下著名的邮件收发软件。

服务器系统是ubuntu 10.04LTS,下⾯说⼀下安装和配置的过程,以备后⽤。

1. 配置sendmail:添加本地域名:sudo vim /etc/mail/local-host-names在⽂件⾥⾯输⼊域名,例如:修改submit.cf⽂件:sudo vim /etc/mail/submit.cf找到⾏ #Dj$,修改为:注意域名前加Dj是其格式(具体没查是什么意思)添加域名MX(Mail eXchanger)记录,这部分应该在域名提供商的控制⾯板⾥⾯更改。

2. 重启服务:sudo service sendmail restart经过这⼏步之后sendmail服务已经配置好,就⽀持收发邮件。

但是注意⽬前的配置只允许本机⽤户(127.0.0.1)收发邮件,⽽且发信的速度会很慢。

默认的发信⼈是 username@hostname,username为系统的当前登陆⽤户,hostname是服务器的主机名。

这样发出去的邮件极⼤的可能被认为是垃圾邮件⽽拒收。

经过测试gmail能接收,但是139邮箱就拒收。

详细信息可以查看记录⽂件,默认为: /var/log/mail.log通过查看记录,同样可以找到发信慢的原因,那就是 hostname不能被解析。

所以需要在host⽂件⾥加⼊hostname的⽀持:sudo vim /etc/hosts解析本机地址:127.0.0.1 localhost hostname从国外的论坛上看到这个顺序⽐较重要,应该按照这个格式解析本机地址。

Linux1 邮件服务器 Sendmail文件

Linux1 邮件服务器  Sendmail文件

Linux1 邮件服务器Sendmail文件Sendmail是配置Sendmail邮件服务器的关键,里面包括许多配置文件,且各个功能都有所不同。

主要包括以下几个:●/etc/mail/sendmail.cf sendmail的主配置文件。

●/etc/mail/access 文件继访问控制。

●/etc/mail/domaitable 域名映射。

●/etc/mail/local-host-name 本地计算机别名。

●/etc/mail/mailertable 为特定的域指定特殊的路由规则。

●/etc/mail/virtusertable 虚拟域配置。

其中,sendmail.cf文件是Sendmail最主要的配置文件,没有它Sendmail就无法运行。

Sendmail文件一向以其内容较长、费解、难以配置而著称。

如果查看里面的内容就会发现它和其它服务器的配置文件截然不同,没有任何的可读性,因此除非真的熟悉其语法原则,否则不建议用户直接对其进行编辑。

Sendmail提供一个宏处理器m4,用户可以先编辑一个相对简单的m4宏配置文件,然后用m4宏处理器把这个文件转换成为Sendmail的配置文件。

在Red Hat Enterprise Linux5.4的/etc/mail目录下,存放着默认的m4宏配置文件sendmail.mc,对于满足一般需求的邮件服务器来讲,用户只需在终端下输入“vi /etc/mail/sendmail.mc”命令,然后按【回车】键进入sendmail.mc文件的编辑界面,对文件进行简单的修改即可满足需求。

此文件的内容如图9-34所示。

图9-34 默认的m4宏文件内容下面来详细的讲解一下这个配置文件。

第1行divert(-1),代表这一行开始一直到divert(0)的部分将在m4进行处理时被忽略掉,不会出现在生成的配置文件中,一般会在这两行之间加入一些版本信息等内容。

文件中有的行是以字符串dnl开头,dnl的作用是注释从它开始到下一行开始的所有字符,即注释部分;还有的行是以dnl结尾,因为m4宏处理器是不识别行的,所以在一行的结尾处需要用dnl注释后面的空格和换行符,以免在生成配置文件中出现不必要的空行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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:
将收到的所有 邮件列表的邮件,转发到各自的信箱:。

相关文档
最新文档