sendmail安装

[table][tr][td]Sendmail安装入门

[b]一.安装sendmail[/b]

如果你在安装LINUX的时候,选择了E-MAIL服务,sendmail就已经安装在LINUX系统中了,并且已经作了一些最基本的设置。假如你在安装时没有选择,或者你需要升级sendmail就可以使用以下方法进行。

1.RPM包安装方式

1) 首先在光盘上或Internet上找到下面几个RPM包(Redhat Linux安装光盘都有):
sendmail-8.9.3-10.i386.rpm sendmail可执行文件
sendmail-cf-8.9.3-10.i386.rpm sendmail.cf生成器
sendmail-doc-8.9.3-10.i386.rpm sendmail.cf文档

2) 然后使用以下命令安装或升级:
安装: rpm –ivh sendmail-8.9.3-10.i386.rpm
升级: rpm –Uvh sendmail-8.9.3-10.i386.rpm

2.重新编译源码方式

1) 首先取得最新版本的源代码:[url=http://www.sendmail.org/][color=#0000ff]http: //www.sendmail.org/[/color][/url]或[url=ftp: //ftp.dlut.edu.cn/pub/unix/mail/sendmail/][color=#0000ff]ftp://ftp.dlut.edu.cn/pub/unix/mail/sendmail/ [/color][/url],将它存放在/usr/local目录下。
2) 执行以下命令,解压缩:
cd /usr/local
tar –zxvf sendmail-8.9.3.tar.gz
这样就会在/home目录下建立一个sendmail-8.9.3目录:
/usr/local/sendmail-8.9.3/README
/usr/local/sendmail-8.9.3/src
/usr/local/sendmail-8.9.3/cf
/usr/local/sendmail-8.9.3/doc
3) 编译:由于sendmail自己带了一个编译程序Build,所以不用make命令:
cd /usr/local/sendmail-8.9.3/src
./Build install

[b]二. 用sendmail构建一个E-Mail服务器[/b]

因为sendmail的功能强大,配置相当繁琐,无法在一篇文章说完这个内容。我们在纛举一个架设供一个公司使用的Internet E-Mail服务器为例进行讲述。以下的设置也能运用在较大的电子邮局应用中,但是随着的用户数的增多,将会使得整个邮局的性能有所下降,这时也就相应地 要进行更加深入的配置工作。有兴趣的读者可以到本网站《在线培训》栏目中的翻译作品子栏目中,阅读笔者翻译的《Sendmail》一书。
下面我们就开始吧!

1.将sendmail配置为守候进程(daemon)启动
如果你在安装LINUX的时候,选择了E-Mail服务。那么,sendmail就已经成为一个守候进程启动了。所谓的守候进程,指的是它就象DOS操作 系统中的常驻内存程序一样,运行后,它们在后台侦听,当需要它进行服务的时候,它就完成特定的功能和服务。在LINUX系统中有许许多多的服务就是以守卫 进程的方式启动着的。
你可以使用以下命令来确认sendmail是否已经启动。
ps –axuw|grep sendmail
如果启动了sendmail,那么这个命令将显示出它的相关信息。否则将没有任何提示地回到命令行。如果没有启动,你可以手动启动。
如果你想让sendmail自动在系统启动时启动,那么就在/etc/rc.d/rc.net文件中加上以下几行代码。
if [-f /usr/lib/sendmail ]; then
(cd /usr/spool/mqueue;rm –f if *)
/usr/lib/sendmail-bd-qlh;echo –n ‘sendmail'>/dev/console
fi

2.设置sendmail.cf

sendmail.cf是sendmail的配置文件。一般说来在安装了LINUX系统之后,它将自动生成一个适合本系统使用的sendmail.cf文 件,而且在sendmail.8.9.3/cf目录下还有许多适应各种系统的sendmail.cf的文件样本,根据文件名也可以
判断出它们所适用的场合。可以选择它们替换原有的sendmail.cf文件。也就是将它们复制到/etc目录中去,覆盖掉原来的sendmail.cf文件。
而且sendmail还提供了一个sendmail.cf的生成器m4,它通过一系列的人机对话来生成一个用户定制的sendmail.cf文件。具体的用法可以阅读m4的帮助文档。在此就不再详述。

3.开启SMTP、POP端口

在Internet中,我们采用POP端口提供接收邮件服务,采用SMTP端口提供发送邮件服务。也就是说,客户端的邮件发送、接收系统在要发送邮件的时候,就与电子邮局的SMTP端口连接;当要接收邮件的时候,就与电子邮局的POP端口连接。

而一般在所有的类UNIX系统中,SMTP端口默认是打开的,而POP端口在默认状态下是关闭的,我们必须将它打开。

1) 用root(超级权限)登录到服务器上;
2) 编辑文件/etc/inetd.conf;
3) 找到描述POP端口的语句;
#pop2 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop2d
#pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d
前面的#号代表这一行是注释语句,不生效。
POP2是早期的端口协议版本,我们现在一般使用的是POP3.
4) 将POP3的描述语句那一行的注释号“#”去掉。确保POP2的那一行是注释语句。
5) 如果没有找到,就手工补上这一行;(另外,我们还可以验证一下是否存在SMTP端口的描述语句);
6) 存盘后退出。
7) 运行inetd命令,使得设置生效。
8) 用以下命令验证,看POP3端口是否打开(生效)。
netstat –a |grep pop
如果打开的话,可以看到以下信息:
tcp 0 0 *:pop3 *:* LISTEN

4.为新用户开E-Mail帐号

其实,在LINUX中,要为一个新的用户开E-Mail帐号是十分简单的。只要在LINUX系统中新增一个用户就可以了。那么这个用户帐号和密码就是E-Mail的帐号和密码。例如,我为一个新用户test开一个E-Mail帐号。就用以下命令:
adduser test
passwd test
这样,这个新用户的E-Mail地址就是:
[email=test@company.com][color=#0000ff]test@company.com[/color][/email]
密码当然就是帐号的密码了。

5.为E-Mail帐号设置别名

如果,有一些用户想使用多个E-Mail地址,是不是就要为他开多个帐号呢?如果是这样就会增加对帐号管理的难度。所以LINUX给我们提供了一种方法:设置别名。
比如说,一个用户叫“李小东”,它想拥有以下的几个E-Mail地址:
[email=wdm@company.com][color=#0000ff]wdm@company.com[/color][/email]
[email=wangdm@company.com][color=#0000ff]wangdm@company.com[/color][/email]
[email=daming@company.com][color=#0000ff]daming@company.com[/color][/email]
我们就通过以下步骤来实现这样的别名设置。
1) 以root登录服务器;
2) 新增一个账号lxd;
3) 编辑文件/etc/aliases;
4) 加上两行:
xiaodong:lxd
tigger:lxd
5) 存盘退出;
6) 执行命令:
Newaliases
这样,发给李小东的邮件可以使用三个邮件地址,而李小东只需要使用一个E-Mail帐号:lxd@company.com就可以接收所有寄给以上三个E-Mail邮件地址的电子邮件。

[b]linux sendmail 安装[/b]

[b]安装所需软件[/b]
sendmail.8.12.18.tar.gz   [url=http://www.sendmail.org/][color=#0000ff]http://www.sendmail.org/[/color][/url]
cyrus-sasl-2.1.18.tar.gz   [url=http://asg.web.cmu.edu/cyrus/][color=#0000ff]http://asg.web.cmu.edu/cyrus/[/color][/url]
安装步骤
1、 先安装cyrus-sasl-2.1.18.tar.gz,sendmail安装时要用到sasl(简单认证和安全层协议)的
2、 库文件的头文件。
解压缩:
# tar -zxvf cyrus-sasl-2.1.18.tar.gz
编译:
进入刚解压的源码目录,运行以下命令完成安装。
#./configure --prefix=/usr/local/sasl2 --enable-login
一定要加--enable-login,因为SASL2默认不支持login这种验证方式,而OUTLOOK是通过
login来进行SMTP验证的。
#make            # 编译
#make install # 安装
完成以上linux程序安装三步曲之后,就可以开始配置和测试了。
2、配置SASL
为了把SASL应用于sendmail认证,还需进行一些配置工作。sendmail会到/usr/lib目录下去
找SASL2库,而我们是把程序安装在/usr/local/sasl2中,为什么不把软件安装在/usr/lib目录
呢?这主要是为了好管理自已安装的软件啦。所以我们要在/usr/lib目录下做一个链接:
# cd /usr/lib
# ln -s /usr/local/sasl2/lib/* .  
#cp -a /usr/local/lib/libsasl* /usr/lib
ok,接着要在/var/目录下建一个目录给saslauthd进程存在临时数据。
# cd /var
# mkdir state
# cd state
# mkdir saslauthd
注:如果没有这些目录,运行saslauthd时,会提示出错。
ok,接着为确保CYRUS-SASL2函数库知道怎样验证所收来的SASL认证请求,必须创建一
个SASL的配置文件来把MTA程序定义成一个SASL应用。配置文件名为Sendmail.conf(注
意是大写的S),位于/usr/lib/sasl2目录中,也就是/usr/local/sasl2/lib/sasl2这个目录,记得上
面新建的链接了吗?在该文件中你定义你希望使用的认证数据库方法,以下这个例子使用
saslauthd来验证认证请求。
# cd /usr/lib/sasl2
# echo 'pwcheck_method: saslauthd' >; Sendmail.conf
3、测试
ok,现在可以运行saslauthd了,并进行测试。
# cd /usr/local/sasl2/sbin
# ./saslauthd -a shadow
用shadow的用户和密码进行验证
# ./testsaslauthd -u userid -p password
0: OK "Success."
如果出现以上信息,就说明saslauthd正常运行了。testsaslauthd程序默认是没有编译的,你
需要在源码目录树的saslauthd子目录中运行      # make testsaslauthd命令生成。
4、sasl2安装完成后,就要开始安装sendmail了。
先解压sendmail源码。
# tar -zxvf sendmail.8.12.10.tar.gz
如果要sendmail支持SASL,需要修改源码的位置配置文件site.config.m4。site.config.m4位
于源码目录树的devtools/Site。文件中应包含以下行:
PREPENDDEF(`confMAPDEF', `-DMAP_REGEX')
APPENDDEF(`confENVDEF', `-DTCPWRAPPERS -DSASL=2')
APPENDDEF(`conf_sendmail_LIBS', `-lwrap -lsasl2')
APPENDDEF(`confLIBDIRS', `-L/usr/local/sasl2/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/sasl2/include')
第一行配置正则表达式相关内容
第二、三行配置表示在sendmail程序中支持sasl2和tcp_wrapper(可通过hosts.allow和
hosts.deny控制访问)
第四、五行配置指出sasl2的库文件和头文件的位置。
ok,接着在编译前要建立一些用户和目录,并确保有正确的权限。
sendmail必须有一个set-group-id(默认是smmsp组)的程序来在一个组可写的目录中查询
排队邮件。所以我们要建立一个smmsp用户和组。并建立如下目录并设置相应的权限,具
体设置要求可查询源码目录树下sendmail/SECURITY文档。
# groupadd smmsp  
# useradd smmsp -d /var/spool/clientmqueue -s /dev/null
# mkdir /var/spool/clientmqueue
# chown -R smmsp:smmsp /var/spool/clientmqueue   
# chmod -R 770 /var/spool/clientmqueue   
# mkdir /etc/mail
# mkdir /var/spool/mqueue
# chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
# chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
ok,接下来就可以进入源码目录树开始编译了。
# ./Build -c
-c选项能删除上次编译产生的文件。
如果编译时出现下面错误:……
Including /usr/local/sendmail/sendmail-8.13.8/devtools/Site/site.config.m4
Making dependencies in /usr/local/sendmail/sendmail-8.13.8/obj.Linux.2.6.9-22.ELsmp.i686/libsmutil
make[2]: Entering directory `/usr/local/sendmail/sendmail-8.13.8/obj.Linux.2.6.9-22.ELsmp.i686/libsmutil'
rm -f sm_os.h
ln -f -s ../../include/sm/os/sm_os_linux.h sm_os.h
cc -M -I. -I../../sendmail    -I../../include   -I/opt/nph/include -I/usr/share/ssl/include -I/usr/local/sasl2/include -DNEWDB -DMAP_REGEX -DPH_MAP -UNIS -DSTARTTLS -DTCPWRAPPERS -DSASL=2 -DNOT_SENDMAIL    debug.c err.c lockfile.c safefile.c snprintf.c cf.c     >> Makefile
In file included from debug.c:11:
../../sendmail/sendmail.h:1324:23: phclient.h: No such file or directory
In file included from err.c:11:
../../sendmail/sendmail.h:1324:23: phclient.h: No such file or directory
In file included from lockfile.c:14:
../../sendmail/sendmail.h:1324:23: phclient.h: No such file or directory
In file included from safefile.c:14:
../../sendmail/sendmail.h:1324:23: phclient.h: No such file or directory
In file included from snprintf.c:14:
../../sendmail/sendmail.h:1324:23: phclient.h: No such file or directory
In file included from cf.c:11:
../../sendmail/sendmail.h:1324:23: phclient.h: No such file or directory
make[2]: *** [depend] Error 1
make[2]: Leaving directory `/usr/local/sendmail/sendmail-8.13.8/obj.Linux.2.6.9-22.ELsmp.i686/libsmutil'
Making in /usr/local/sendmail/sendmail-8.13.8/obj.Linux.2.6.9-22.ELsmp.i686/libsmutil
make[2]: Entering directory `/usr/local/sendmail/sendmail-8.13.8/obj.Linux.2.6.9-22.ELsmp.i686/libsmutil'
cc -O2 -I. -I../../sendmail    -I../../include   -I/opt/nph/include -I/usr/share/ssl/include -I/usr/local/sasl2/include -DNEWDB -DMAP_REGEX -DPH_MAP -UNIS -DSTARTTLS -DTCPWRAPPERS -DSASL=2 -DNOT_SENDMAIL       -c -o debug.o debug.c
In file included from debug.c:11:
../../sendmail/sendmail.h:1324:23: phclient.h: No such file or directory
In file included from debug.c:11:
../../sendmail/sendmail.h:1330: error: syntax error before "PH"
../../sendmail/sendmail.h:1330: warning: no semicolon at end of struct or union
../../sendmail/sendmail.h:1333: error: syntax error before '}' token
make[2]: *** [debug.o] Error 1
make[2]: Leaving directory `/usr/local/sendmail/sendmail-8.13.8/obj.Linux.2.6.9-22.ELsmp.i686/libsmutil'
make[1]: *** [/usr/local/sendmail/sendmail-8.13.8/obj.Linux.2.6.9-22.ELsmp.i686/libsmutil/libsmutil.a] Error 2
make[1]: Leaving directory `/usr/local/sendmail/sendmail-8.13.8/obj.Linux.2.6.9-22.ELsmp.i686/vacation'
make: *** [all] Error 2
需要安装PH_MAP或者是openssl,如果是PH_MAP没有安装(即需要安装phclientlib),下载地址为:[url=http: //www.feep.net/nph/][color=#0000ff]http://www.feep.net/nph/[/color][/url]
openssl的下载地址为:[url]http://www.openssl.com[/url]
# ./Build install
编译完成后就可以进行安装。
5、sendmail配置
          要sendmail正常运行,还需配置几个文件,首先最重要的就是sendmail.cf 文件了。它在源 码目录树下的cf/cf目录下有很多例子可参考。你可以拷贝使用。由于sendmail.cf中的语法 很复杂,所以不建议手工修改。我们可以以sendmail.mc文档配合sendmail-cf目录下的宏通 过m4预处理器自动生成。m4预处理器用来从一组宏文件中创建sendmail配置文件。宏文件作为输入被读进来。宏被展开,然后写到一个输出文件。 sendmail-cf目录一般放在/usr/share 目录下。其实sendmail-cf目录的内容和源码目录树下的cf目录的内容是一样的,所以,为了保证sendmail-cf目录的内容与安装版本同 步,要把源码目录树下的cf目录的内容拷贝到/usr/share/sendmail-cf目录。
sendmail.mc配置文档内容如下:
divert(-1)
include(`/usr/share/sendmail-cf/m4/cf.m4')
VERSIONID(`linux setup for Red Hat Linux')dnl
OSTYPE(`linux')
dnl Uncomment and edit the following line if your mail needs to be sent out
dnl through an external mail server:
dnl define(`SMART_HOST',`smtp.your.provider')
define(`confDEF_USER_ID',``8:12'')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')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/mail/aliases')dnl
define(`STATUS_FILE', `/etc/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
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl               
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5  
LOGIN PLAIN')dnl
dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
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 '-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
EXPOSED_USER(`root')dnl
dnl This changes sendmail to only listen on the loopback device 127.0.0.1
dnl and not on any other network devices. Comment this out if you want
dnl to accept email over the network.
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')
dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl        a kernel patch
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')
dnl We strongly recommend to comment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on computers that do
dnl not have 24x7 DNS do need this.
FEATURE(`accept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
记得要使以下两个条语句有效,它的意思是如果access.db访问控制没有设置,则启用以下
验证方式进行smtp验证。
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl               
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5  
LOGIN PLAIN')dnl
sendmail宏定义说明
divert(n) 为m4定义一个缓冲动作,当n=-1时缓冲被删除,n=0时开始一个新缓冲
OSTYPE 定义宏所使用的操作系统,该宏允许m4程序增加同相关操作系统相关的
文件
Domain 定义MTA将使用哪些域来传输邮件
Feature 定义配置文件中使用的一个特定的功能集
Define 定义配置文件中的一个特定的选项值
MASQUERADE_AS 定义sendmail来应答邮件的其它主机名
MAILER 定义sendmail使用的邮件传输方法
dnl 注释
完成sendmail.mc文档的编写后就可以用m4程序生成正式的sendmail.cf配置文档。语法如
下:
# m4 sendmail.mc >; sendmail.cf
也可以用源码目录树下的cf/cf/Build命令生成。前提是你要在该目录下有一个sendmail.mc
文档。语法如下:
# ./Build sendmail.cf  
注意:如果你的sendmail.mc 文件include(`/usr/share/sendmail-cf/m4/cf.m4')配置不正确,那么无法不编译于安装。

ok,接着就可以把sendmail.cf and submit.cf文档安装到/etc/mail目录中的,语法如下:
# ./Build install-cf
其实也可以自已用cp命令拷贝的啦。记得把sendmail.mc文档也拷贝一份到/etc/mail目录,
以便以后修改配置时可重新生成sendmail.cf文档。
ok,接着到/etc/mail目录下配置一些文档。
# cd /etc/mail  
# echo 'examply.com' >;>; local-host-names   接收邮件的主机名
# echo 'localhost     RELAY'   >;>; access   用来拒绝或允许来自某个域的邮件,本例允许
本地转发。
# makemap hash access < access   生成access.db数据库
# touch domaintable   用来把旧域名映射互新域名
# makemap hash domaintable < domaintable  
# touch mailertable   来覆盖向指定域的路由
# makemap hash mailertable < mailertable  
# touch trusted-users  
# touch virtusertable   用来把用户和域名映射到其它地址
# makemap hash virtusertable < virtusertable  
# chown root:wheel /var/spool/mqueue/  
# chmod 700 /var/spool/mqueue  
# touch aliases   别名数据库,文本形式。可参照源码目录树下
sendmail/aliases文件。
# newaliases                    从文本文件中创建一个新的别名数据库文件。
# sendmail -v -bi 调试启动。
/etc/mail/aliases: 42 aliases, longest 10 bytes, 432 bytes total
如果出现以上提示信息,则启动成功。可用以下命令正式启动:
# sendmail -bd -q30m
该命令以后台进程方式(-bd)运行,并使其每隔30分钟(-q30m)轮询一次未发送邮件队
列,检查是否有新邮件。
服务器启动后,可以用telnet连接服务器。
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 test.tigerhead ESMTP Sendmail 8.12.10/8.12.10; Tue, 30 Mar 2004 14:50:14 +0800
ehlo test 你输入的命令,按回车结束。
250-test.tigerhead Hello LOCALHOST.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-DELIVERBY
250 HELP
以250-开头的为服务器的响应信息。注意倒数第三行,这就是成功配置smtp验证的显示。
输入quit离开。

安装完成后为确保系统安全,还需调整一些目录的权限。可参考sendmail源码目录下
sendmail/SECURITY文档。
# chmod 0640 /etc/mail/aliases /etc/mail/aliases.{db,pag,dir}
# chmod 0640 /etc/mail/*.{db,pag,dir}
# chmod 0640 /etc/mail/statistics /var/log/sendmail.st
# chmod 0600 /var/run/sendmail.pid /etc/mail/sendmail.pid
-r-xr-sr-x root    smmsp ... /PATH/TO/sendmail
drwxrwx--- smmsp   smmsp ... /var/spool/clientmqueue
drwx------ root    wheel ... /var/spool/mqueue
-r--r--r-- root    wheel ... /etc/mail/sendmail.cf
-r--r--r-- root    wheel ... /etc/mail/submit.cf
6、sendmail功能介绍
aliases 别名数据库设置
test: test1,test2,test3 设置test群组别名,test不是一个实际的用户,只是一个别名。发给
test的信,test1,2,3都可收到。
test: test,testbak 在testbak邮箱中备份test的邮件。
test: test,[email]test@163.com[/email] 远程邮件备份,原理同上。
test:    :include: /etc/mail/userlist 使用用户列表设置群组。
userlist格式如下:
test1, /
test2, /
test3, /
test4
关于系统预设aliases,由于sendmail预设用mailer-daemon and postmaster作为资料传送者,
或邮件退回的帐号,但系统实际没有这两个帐号,所以要如下设置别名。
mailer-daemon:   postmaster  
postmaster:      root  
设置完成后不要忘了用newaliases命令生成数据库。
~/.forward文件配置
其实该文档的作用和aliases数据库的作差不多啦,都是配置别名,做邮件转发的。因为alises
只能由管理员控制,个人用户不能修改,所以就可以在个人的目录下建立一个转寄文档。以
设置个人的邮件转寄列表。文档格式如下:
test
test1
test2
test3
and os on
但由于个人用户安全意识差,如果设置不当会有安全漏洞,不建议使用。
access访问控制列表设置
92.168 RELAY
test.NET OK
test.COM REJECT
test.COM 550 SORRY,WE DON'T ALLOW SPAMMERS HERE
test.ORG DISCARD
Ok--远程主机可以向你的邮件服务器发送邮件;
RELAY--允许中转;
REJECT--不能向你的邮件服务器发邮件和不能中转;
DISCARD--发来的邮件将被丢弃,同时并不向发送者返回错误信息。
nnn text-- 发来的邮件将被丢弃,但sendmail将会向发送者返回nnn确定的smtp代码和text
变量确定的文本描述。
设置完成后要用makemap hash access.db < access命令生成数据库。
mailq邮件队列查询命令。
Q-ID 邮件id号。
Size 邮件容量。
Q-Time 邮件进入队列(也就是/var/spool/mqueue目录)的时间和不能邮寄的原因。
Sender/Recipient 发信和收信人的邮箱地址。
mailstats邮寄状态查询命令,可查询sendmail运行作至今邮件收发总计资料。
M      :
msgsfr:发送的邮件数量。
bytes_from:邮件容量  
megsto:收到邮件的数量。  
bytes_to:同上
msgsrej:邮件deny的次数。  
msgsdis:邮件discard的次数。  
Mailer :esmtp对外邮件 ,local本地邮件 。
mail邮件命令
mail 查看/var/spool/mail/目录下自已邮箱内容。以q退出把看过的邮件保存在
~/mbox中。
mail [email=test@example.com][color=#0000ff]test@example.com[/color][/email] 直接发邮件给人。
mail -s 'title text' [email=test@example.com][color=#0000ff]test@example.com[/color][/email] < mail.txt   把文档中内容邮寄出去。
mail -f ~/mbox 查看home目录下邮箱内容。
用mail发附件也是可行,要用到uuencode and uudecode命令进行编码。
编码:uuencode [file] name           example:uuencode hello hello>;hello.uue    default input  
is stdin;default output is stdout.
解码:uudecode [-o outfile] name     example:uudecode hello.uue 可以用-o选项输出另外一个
文件名。
# uuencode ~/.bashrc bashrc | mail -s 'test uuencode' [email=test@example.com][color=#0000ff]test@example.com[/color][/email] 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值