RHEL5中配置Sendmail邮件服务

本文详细介绍了在RHEL5系统中配置Sendmail邮件服务的步骤,包括邮件系统的运作原理、SMTP、POP3和IMAP4协议、sendmail的安装与配置、防火墙设置、邮件发送和接收、以及邮件服务器的选择和管理。内容涵盖DNS配置、邮件协议、sendmail的主要配置文件、防火墙规则和邮件测试等,旨在帮助系统管理员搭建和管理高效的邮件系统。
摘要由CSDN通过智能技术生成

                                搭建Sendmail邮件系统

1                          ☆邮件系统

电子邮件系统的工作原理

   电子邮件系统的运作方式与其它的网络应用有着根本上的不同。在其它的绝大多数的网络应用中,网络协议直接负责将数据发送到目的

   地。而在电子邮件系统中,发送者并不等待发送工作完成,而是仅仅将要发送的内容发送出去。

电子邮件的协议标准是TCP/IP协议族的一部分。它规定了电子邮件的格式和在邮局间交换电子邮件的协议。

每个电子邮件都分为两部分:邮件头和邮件内容。TCP/IP对电子邮件的邮件头的格式作了确切的规定,而将邮件内容的格式让用户自定义。

                            在邮件头中最重要的两个组成部分就是发送者和接收者的电子邮件地址。

电子邮件地址的格式如下:

   用户名@电子邮局域名 :abc@990.net

电子邮件的传输协议(也就是在邮局间交换电子邮件的协议)主要有SMTP(简单邮件传输协议)POP(电子邮局协议),以及现在新兴的IMAP(互联网邮件应用协议)

整个电子邮件应用系统由两大部分构成:

1. 电子邮局系统;

     电子邮局行使着像传统邮局的功能,它在发送者和接收者之间起着一个桥梁作用。它是运行在电子邮局服务器上的一个服务器端程序。

     最常用的有MicrosoftIISsendmail等。

2. 电子邮件发送、接收系统。

    电子邮件发送、接收系统则象遍及千家万户的邮箱,发送者和接收者通过它将邮件从电脑中发送和接收邮件。这个部分是一个运行在电

    脑中的客户端程序,最常用的有MicrosoftOutlook ExpressNetscapeThe BatFoxmail方正飞扬等

3种可提供的邮件服务

   MTAMessage Transfer Agent):消息传输代理(发送邮件服务器) sendmail, postfix, qmail

   MDA Mail Delivery Agents):邮件传递代理(邮件处理器) procmail, maildrop

  MUA Mail User Agent):邮件用户代理(邮件客户端上运行的程序) Mozilla, elm

☆邮件服务器

  邮件服务器是电子邮件系统的核心构件,它的主要功能是发送和接收邮件,同时向发件人报告邮件的传送情况。根据用途的不同,可以将

  邮件服务器分为发送邮件服务器(SMTP服务器)和接收邮件服务器(POP3服务器或IMAP4服务器)

    sendmailpostfix。您可以选择任何一个MTA

  Sendmail并不处理最终的投递,当然也不会处理如何把邮件提交给最终用户这样的任务。一般来说,我们总是在Windows客户机器上处

  理各种电子邮件,因此需要一个服务程序负责将sendmail存储的邮件转交给Windows或其他任何客户机器。有两种基本的方法,一种是

  将邮件传送到客户的本地机器上处理,这是通过所谓的邮局协议实现的;另一种是允许用户远程操作其邮箱并且实现对邮件的浏览和管理,

  这是通过所谓的IMAP协议。

2                          SMTP协议

SMTP即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把Email寄到收件人的服务器上了。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。

3                          POP3协议

POP3即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的协议。它是Internet电子邮件的第一个离线协议标准,POP3允许从服务器上把邮件存储到本地主机即自己的计算机上,同时删除保存在邮件服务器上的邮件。遵循POP3协议来接收电子邮件的服务器是POP3服务器。

4                          IMAP4协议

IMAP4Internet信息访问协议的第4个版本,是用于从本地服务器上访问电子邮件的协议,它是一个客户/服务器模型协议,用户的电子邮件由服务器负责接收保存,用户可以通过浏览信件头来决定是否要下载此信。用户也可以在服务器上创建或更改文件夹或邮箱,删除信件或检索信件的特定部分

5                          POPIMAP差异

虽然POPIMAP都是处理接收邮件的,但两者在机制上却有所不同。在用户访问电子邮件时,IMAP4需要持续访问服务器,POP3则是将信件保存在服务器上,当用户阅读信件时,所有内容都会被立即下载到用户的机器上。因此,可以把IMAP4看成是一个远程文件服务器,而把POP看成是一个存储转发服务器。就目前情况看,POP3的应用远比IMAP4广泛得多。

6                          mail

使用权限:所有使用者

使用方式:mail [-iInv] [-s subject] [-c cc-addr] [-b bcc-addr] user1 [user 2 ...]

说明:

mail 不仅只是一个指令, mail 是一个电子邮件程式,不过利用 mail 来读信的人应该很少吧!对于系统管理者来说 mail 就很有用,因为管理者可以用 mail 写成 script ,定期寄一些备忘录提醒系统的使用者。

参数:

i  忽略 tty 的中断讯号 (interrupt)

I  强迫设成互动模式。 (Interactive)

v  列印出讯息,例如送信的地点、状态等等。 (verbose)

n  不读入 mail.rc 设定档。

s   邮件标题。

c cc  邮件地址。

b bcc  邮件地址。

将信件送给一个或以上的电子邮件地址,由于没有加入其他的选项,使用者必须输入标题与信件的内容等。而 user2 没有主机位置,就会送给邮件伺服器的 user2 使用者。

    mail user1@email.address

    mail user1@email.address user2

mail.txt 的内容寄给 user2 同时 cc user1 。如果将这一行指令设成 crontab 就可以定时将备忘录寄给系统使用者。

   mail -s 标题 -c user1 user2 < mail.txt

   mail 查看/var/spool/mail/目录下自已邮箱内容(每个用户会有一个文件保存自己所有文件)。以q退出把看过的邮件保存在~/mbox文件中。

   mail test@panda.com 直接发邮件给人。

   mail -s 'title text' test@panda.com < mail.txt 把文档中内容邮寄出去。

   mail -f ~/mbox 查看home目录下邮箱内容。

7                          uuencode/uudecode

mail发附件也是可行,要用到uuencode and uudecode命令进行编码。

编码:uuencode [file] name

uuencode hello >hello.uue

default input is stdin;se

default output is stdout.

解码:uudecode [-o outfile] name

uudecode hello.uue

可以用-o选项输出另外一个文件名。

# uuencode ~/.bashrc -o bashrc | mail -s 'test uuencode' test@panda.com

8                          system-switch-mail

 切换sendmailpostfix

9                          sendmail

sendmail提供SMTP服务

10              sendmail安装

如果你在安装RHEL5的时候,选择了E-MAIL服务,sendmail就已经安装在LINUX系统中了,并且已经作了一些最基本的设置。

  sendmail-8.13.8-2.el5.i386.rpm       (第一张光盘,默认已装) sendmail软件包是sendmail服务器程序的安装包,是最重要的软件包.

  m4-1.4.5-3.el5.1.i386.rpm            (第一张光盘,默认已装)m4软件包中包括了配置sendmail服务器的必要工具.

  procmail-3.22-17.1.i386.rpm         (第一张光盘,默认已装)

  sendmail-cf-8.13.8-2.el5.i386.rpm     (第二张光盘,默认未装) sendmail-cf软件包中包括了重新配置sendmail服务器的必要配置文件.

  sendmail-doc-8.13.8-2.el5.i386.rpm   (第三张光盘,默认未装) sendmail-doc软件包中包括了sendmail服务器的说明文档.

  sendmail-devel-8.13.8-2.el5.i386.rpm  (第三张光盘,默认未装) 

管理员需要手动安装以下两个包,才能配置sendmail服务器:#rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm  sendmail-doc-8.13.8-2.el5.i386.rpm

设置运行级别:#chkconfig --level 35 sendmail on

11              sendmail使用前配置

sendmailDNS设置

sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给那一个服务器,这是通过DNS服务实现的。例如,有一封邮件的目标地址是panda@panda.com,那么,sendmail首先确定这个地址是用户名(panda)+机器名(panda.com)的格式,然后,通过查询DNS来确定需要把信件投递给某个服务器。

先用ifconfig查看服务器的ip,再把ip写入:

   #vi  /etc/resolv.conf

    ; generated by /sbin/dhclient-script

    search panda.com

    nameserver 192.168.152.128

确认/etc/hosts,

   #vi /etc/hosts

    # Do not remove the following line, or various programs

    # that require network functionality will fail.

    127.0.0.1       panda.panda.com         panda   panda

然后在/etc/named.conf中加入

   zone "panda.com" IN {

        type master;

        file "panda.com.zone";

    };

最后生成/var/named/chroot/var/named/panda.com.zone

   $TTL    86400

   @ IN SOA panda.panda.com. root.panda.panda.com. (

                              2006062700 ; Serial

                              28800 ; Refresh

                              14400 ; Retry

                              3600000 ; Expire

                              86400 ) ; Minimum

   IN     NS    panda

   IN     MX   10    panda

   panda  IN    A    192.168.152.128

重启DNS.#service named restart

DNS数据中,与电子邮件相关的是MX记录,这可以在查询DNS时设置查询类型为mx来得 :

[root@panda ~]# nslookup

  > panda.panda.com

  Server:         192.168.152.128

  Address:        192.168.152.128#53

  Name:   panda.panda.com

  Address: 192.168.152.128

  > set q=mx

  > panda.com

  Server:         192.168.152.128

  Address:        192.168.152.128#53

  panda.com       mail exchanger = 10 panda.panda.com.

在一般的情况下,mx交换器会自动把信件内容转交给目标主机,不过,也存在这样的情况 ,目标主机(比如panda.com)可能并不存在,或者不执行smtp服务,而是由其mx交换器来执行信件的管理,这时候,最终的信件将保存在mx机器上,直到用户来察看它。

如果DNS查询无法找出对某个地址的MX记录(通常因为对方没有信件交换主机),那么sendmail将是试图直接与对方的主机(来自邮件地址)对话并且发送邮件。例如,test@china.comDNS中没有对应的MX记录,因此sendmail在确定MX交换器失败后,将从DNS取得对方的IP地址并直接和对方对话试图发送邮件。

sendmail发送邮件时,如果经过设定的时间后仍然未能将信件投递到目的主机,它将返回一个错误信息并且休息一段时间,然后重新试图投递,如果连续多次失败,sendmail最终将放弃投递并将错误信息投递给postmaster用户。在许多机器上,postmaster用户是root用户的一个别名(参考下面关于别名的内容),你应该将它设置为邮件的实际管理员的用户名。

例如,你可能会用mail程序向某个地址这样发信:

  $mail someone@somedomain.com

  To:other@otherdomain.com

  Subject:test mail

  test

someone@somedomain.com 必须准确到某台主机上

那么,当sendmail发信的时候,它是向someone@somedomain.com发信而不是other@otherdomain.com。相应地,如果你想向两个人发信,例如你在outlook里面写上:"投递给user1@a.com,抄送user2@b.com",那么sendmail应该怎么做?直接同时向两个地址发信吗?否,它试图构造两个包装(称为信封),每个包装上只列出一个投递地址,各投递一次。虽然邮件正文的头部仍然包含两个地址,但是sendmail不会看它。

配置文件

  /etc/sysconfig/sendmail

  DAEMON=yes

  QUEUE=1h

每一个小时传递队列中的文件

12              sendmail防火墙

iptables -I INPUT -p tcp --dport 25 -j ACCEPT

13              sendmail启动

启动用:

#service sendmail start #/etc/init.d/sendmail start

# sendmail  -bd  -q30m该命令以后台进程方式(-bd)运行,并使其每隔30分钟(-q30m)轮询一次未发送邮件队列,检查是否有新邮件。-q1h表示每隔一个小时发送一次邮件

停止用:

#service sendmail stop#/etc/init.d/sendmail stop#service sendmail restart

14              sendmail主要配置文件

  #ls  /etc/mail/

  access            helpfile           Makefile      submit.mc

  access.db         local-host-names   sendmail.cf    trusted-users

  domaintable      mailertable        sendmail.mc   virtusertable

  domaintable.db   mailertable.db      submit.cf     virtusertable.db

  #ls  /etc/aliases*

   /etc/aliases      /etc/aliases.db

/etc/mail目录中保存了sendmail服务器使用的所有配置文件,文件后缀是".cf"的是服务器配置文件,文件后缀是".db"的是服务器使用的数据库文件,下面是常用的文件说明:

配置文件sendmail.cfsendmail.mc

  sendmail服务器的主配置文件是sendmail.cf,该文件的格式是公认的难于理解,因此即使是有经验的管理员也会避免直接编辑此文件,sendmail开发人员为

  sendmail管理者提供了更加容易理解和配置的sendmail.mc文件。一般情况下,系统管理员对sendmail.mc文件的内容进行设置后,再使用m4命令由

  sendmail.mc文件的内容生成sendmail.cf文件。但由于sendmail.mc文件的配置依然有一定的难度,因此在第一次对sendmail.mc文件进行修改前,最好先将

  该文件进行备份,以便配置错误时能够恢复默认配置,操作流程如下:

    #cd /etc/mail                   (进入主配置文件目录)

    #cp sendmail.mc  sendmail.mc-  (备份配置文件sendmail.mc)

    #vi sendmail.mc                (编缉配置文件sendmail.mc)

    #m4 sendmail.mc > sendmail.cf   (利用m4命令重新生成主配置文件sendmail.cf)

    #service sendmail restart         (重启sendmail服务使配置生效)

 注意:sendmail服务器在运行时只读取sendmail.cf文件中的设置,因此每次对sendmail.mc文件进行修改后都需要使用m4命令生成新的sendmail.cf文件,  

       而且m4命令必须在/etc/mail/目录中执行。

数据库配置文件和数据库文件

  sendmail服务器中除了sendmail.cf主配置文件以外,还使用了许多数据库文件辅助进行sendmail服务器的配置。在/etc/mail目录中所有扩展名为".db"

  文件都是数据库文件,这些数据库文件的格式对于用户是不可读的。每个".db"数据库文件在同一目录下都对应有同名的无扩展名文件,例如对于access.db

  文件,对应有名为access的文本文件,access文件是用于系统管理员进行管理的,称为数据库配置文件。当管理员在数据库配置文件(文本文件)中进行了相

  应的设置后,需要使用makemap命令将数据库配置文件生成".db"的数据库文件,因为sendmail服务器只能够识别".db"的数据库文件中的配置内容。操 

  作流程如下:

    #cd /etc/mail        (进入数据库文件目录)

    #vi  access         (编辑数据库配置文件)

    #makemap  hash  access.db  <access   (makemap命令重新生成数据库文件)

    #service sendmail restart    (重启sendmail服务让配置生效)

sendmail.mc

sendmail.mc文件中指令的意义:

指令

意义

divert (-1)

删除结果文件中的垃圾

divert (0)

保存通常的配置文件

Dnl

注解

Include

包含一个文件

define arg1 arg2

定义宏arg1设置为arg2

undefine arg1

取消arg1的定义

OSTYPE ('Linux')

定义操作系统类型

FEATURE

功能选项,对应/usr/lib/sendmail-cf/feature里定义的文件名称

MAILER

定义所有必要的邮件投递代理程序

ASQUERADE_AS

用来处理多主机名称问题

divert(-1)dnl

dnl #

dnl # This is the sendmail macro config file for m4. If you make changes to

dnl # /etc/mail/sendmail.mc, you will need to regenerate the

dnl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package is

dnl # installed and then performing a

dnl #     make -C /etc/mail

include(`/usr/share/sendmail-cf/m4/cf.m4')dnl

VERSIONID(`setup for linux')dnl

OSTYPE(`linux')dnl    //设定使用的操作系统类别

dnl # Do not advertize sendmail version.

dnl define(`confSMTP_LOGIN_MSG', `$j Sendmail; $b')dnl

dnl # default logging level is 9, you might want to set it higher to

dnl # debug the configuration

dnl define(`confLOG_LEVEL', `9')dnl

dnl # Uncomment and edit the following line if your outgoing mail needs to

dnl # be sent out through an external mail server:

dnl define(`SMART_HOST', `smtp.your.provider')dnl

define(`confDEF_USER_ID', ``8:12'')dnl

dnl define(`confAUTO_REBUILD')dnl

define(`confTO_CONNECT', `1m')dnl

define(`confTRY_NULL_MX_LIST', `True')dnl

define(`confDONT_PROBE_INTERFACES', `True')dnl

define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl

define(`ALIAS_FILE', `/etc/aliases')dnl

define(`STATUS_FILE', `/var/log/mail/statistics')dnl

define(`UUCP_MAILER_MAX', `2000000')dnl

define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl

define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl

define(`confAUTH_OPTIONS', `A')dnl

dnl # The following allows relaying if the user authenticates, and disallows

dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links

dnl define(`confAUTH_OPTIONS', `A p')dnl

dnl # PLAIN is the preferred plaintext authentication method and used by

dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do

dnl # use LOGIN. Other mechanisms should be used if the connection is not

dnl # guaranteed secure.

dnl # Please remember that saslauthd needs to be running for AUTH.

ddnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

dnl # Rudimentary information on creating certificates for sendmail TLS:

dnl #     cd /usr/share/ssl/certs; make sendmail.pem

dnl # Complete usage:

dnl #     make -C /usr/share/ssl/certs usage

dnl define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl

dnl define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl

dnl define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl

dnl define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl

dnl # This allows sendmail to use a keyfile that is shared with OpenLDAP's

dnl # slapd, which requires the file to be readble by group ldap

dnl define(`confDONT_BLAME_SENDMAIL', `groupreadablekeyfile')dnl

dnl define(`confTO_QUEUEWARN', `4h')dnl

dnl define(`confTO_QUEUERETURN', `5d')dnl

dnl define(`confQUEUE_LA', `12')dnl

dnl define(`confREFUSE_LA', `18')dnl

define(`confTO_IDENT', `0')dnl

dnl FEATURE(delay_checks)dnl

FEATURE(`no_default_msa', `dnl')dnl

FEATURE(`smrsh', `/usr/sbin/smrsh')dnl

FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl

FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl

FEATURE(redirect)dnl

FEATURE(always_add_domain)dnl

FEATURE(use_cw_file)dnl

FEATURE(use_ct_file)dnl

dnl # The following limits the number of processes sendmail can fork to accept

dnl # incoming messages or process its message queues to 20.) sendmail refuses

dnl # to accept connections once it has reached its quota of child processes.

dnl define(`confMAX_DAEMON_CHILDREN', `20')dnl

dnl # Limits the number of new connections per second. This caps the overhead

dnl # incurred due to forking new sendmail processes. May be useful against

dnl # DoS attacks or barrages of spam. (As mentioned below, a per-IP address

dnl # limit would be useful but is not available as an option at this writing.)

dnl define(`confCONNECTION_RATE_THROTTLE', `3')dnl

dnl # The -t option will retry delivery if e.g. the user runs over his quota.

FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl

FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl

FEATURE(`blacklist_recipients')dnl    //允许使用黑名单查禁收件人。因此用户可以在access文件中设定黑名单。

EXPOSED_USER(`root')dnl

dnl # For using Cyrus-IMAPd as POP3/IMAP server through LMTP delivery uncomment

dnl # the following 2 definitions and activate below in the MAILER section the

dnl # cyrusv2 mailer.

dnl define(`confLOCAL_MAILER', `cyrusv2')dnl

dnl define(`CYRUSV2_MAILER_ARGS', `FILE /var/lib/imap/socket/lmtp')dnl

dnl # The following causes sendmail to only listen on the IPv4 loopback address

dnl # 127.0.0.1 and not on any other network devices. Remove the loopback

dnl # address restriction to accept email from the internet or intranet.

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

dnl # The following causes sendmail to additionally listen to port 587 for

dnl # mail from MUAs that authenticate. Roaming users who can't reach their

dnl # preferred sendmail daemon due to port 25 being blocked or redirected find

dnl # this useful.

dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

dnl # The following causes sendmail to additionally listen to port 465, but

dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed

dnl # by STARTTLS is preferred, but roaming clients using Outlook Express can't

dnl # do STARTTLS on ports other than 25. Mozilla Mail can ONLY use STARTTLS

dnl # and doesn't support the deprecated smtps; Evolution <1.1.1 uses smtps

dnl # when SSL is enabled-- STARTTLS support is available in version 1.1.1.

dnl # For this to work your OpenSSL certificates must be configured.

dnl #

dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl

dnl # The following causes sendmail to additionally listen on the IPv6 loopback

dnl # device. Remove the loopback address restriction listen to the network.

dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl

dnl # enable both ipv6 and ipv4 in sendmail:

dnl DAEMON_OPTIONS(`Name=MTA-v4, Family=inet, Name=MTA-v6, Family=inet6')

dnl # We strongly recommend not accepting unresolvable domains if you want to

dnl # protect yourself from spam. However, the laptop and users on computers

dnl # that do not have 24x7 DNS do need this.

FEATURE(`accept_unresolvable_domains')dnl  //接受无法反向解析的域来的邮件

dnl FEATURE(`relay_based_on_MX')dnl   //自动接受DNSMX记录来源的邮件转发

dnl # Also accept email sent to "localhost.localdomain" as local email.

LOCAL_DOMAIN(`localhost.localdomain')dnl

dnl # The following example makes mail from this host and any additional

dnl # specified domains appear to be sent from mydomain.com

dnl MASQUERADE_AS(`mydomain.com')dnl

dnl # masquerade not just the headers, but the envelope as well

dnl FEATURE(masquerade_envelope)dnl

dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well

dnl FEATURE(masquerade_entire_domain)dnl

dnl MASQUERADE_DOMAIN(localhost)dnl

dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl

dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl

dnl MASQUERADE_DOMAIN(mydomain.lan)dnl

MAILER(smtp)dnl

MAILER(procmail)dnl

dnl MAILER(cyrusv2)dnl

mc语法

一个mc模板文件通常可以包含几个段落:

注意里面的正反引号,而且不能随便加入空格。

sendmail宏定义说明

divert(n) m4定义一个缓冲动作,当n=-1时缓冲被删除,n=0时开始一个新缓冲

OSTYPE 定义宏所使用的操作系统,该宏允许m4程序增加同相关操作系统相关的文件

Domain 定义MTA将使用哪些域来传输邮件

Feature 定义配置文件中使用的一个特定的功能集

Define 定义配置文件中的一个特定的选项值

MASQUERADE_AS 定义sendmail来应答邮件的其它主机名

MAILER 定义sendmail使用的邮件传输方法

dnl 注释

divert

通常总是设置为divert(-1)m4在输出中去掉一些垃圾。

OSTYPE OSTYPE

定义使用的操作系统类型,当然在我们的情况下就是linux但是一定要注意m4程序中引号的用法,一个反引号和一个正引号才代表把对应的东西括起来。

define

定义一些全局设置,对于Linux系统,设置了OSTYPE之后,可以定义下面的一些全局 参数,如果不定义,就使用缺省值。例如:

define(ALIAS_FILE/etc/aliases)

变量名 说明(方括号中为缺省值)

ALIAS_FILE [/etc/aliases]

别名文件的位置。如果有多个别名文件,需要把它们用引号括起来(别忘了引号规则 )

confCR_FILE [/etc/mail/relay-domains]

缺省的域定义文件,在这个域中定义的域中机器可以通过你的服务器进行邮件发送。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值