Chinaunix首页 | 论坛 | 博客
  • 博客访问: 202383
  • 博文数量: 49
  • 博客积分: 4776
  • 博客等级: 中校
  • 技术积分: 486
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-02 10:42
  • 认证徽章:
文章分类

全部博文(49)

文章存档

2010年(6)

2009年(8)

2008年(20)

2007年(10)

2006年(2)

2005年(3)

分类:

2007-09-27 11:40:19

CenTOS 5下面用自带的RPM包安装基于sendmail的邮件系统
Author:汪洋
Nickname:ruochen / ruochen0926
Date:20070927
Version:1.0
Contact: E-Mail:ruochen0926(at)gmail.com  QQ:967409
Blog:http://ruochen.cublog.cn/
Note:参考了网上很多网友的帖子,都比较零散,不一一列出,如果在安装或者使用过程中有疑问,请到我的blog跟帖,我会尽快回复


目录:
目标:配置一个功能齐全的Mail系统
1)安装需要的软件包
2)配置IMAP/POP3
3)安装clamav杀毒软件 (只有这一个软件包不是Centos自带的,本文选择源码包安装)
4)配置sendmail.mc文件以支持多种功能
4.1)配置sendmail.mc以支持多邮件队列
4.2)配置sendmail的sasl认证
4.3)邮件转发域的配置
4.4)配置TLS的支持
5)配置SPAM防垃圾功能
6)配置webmail
7)用mailman配置邮件列表
8)安全相关
8.1)增强Sendmail的抗DoS攻击能力
9)其他
9.1)sendmail的启动文档
9.2)在sendmail里如何控制邮箱大小
9.3)在sendmail.mc中配置RBL
9.4)sendmail如何实现邮件的内发和外发
9.4)用mutt在命令行或者脚本种发送附件
9.5)senmail邮件的备份
9.6)senmail邮件帐号的备份


1)安装需要的软件包
sendmail-8.13.8-2.el55  #sendmail基本包
sendmail-cf-8.13.8-2.el5 #sendmail cf配置工具和样例
sendmail-devel-8.13.8-2.el5 #使用clamav-milter时需要这个软件提供的功能,若没有这个软件,sendmail无法过滤病毒邮件

gmp-devel-4.1.4-10.el5
gmp-4.1.4-10.el5
这两个软件包用来为数据库做数字签名的,如果没有的话在升级数据库时会提示数据签名错误

byacc-1.9-29.2.2
libgcc-4.1.1-52.el5
gcc-4.1.1-52.el5
gcc-c++-4.1.1-52.el5
gcc-gnat-4.1.1-52.el5
gcc-java-4.1.1-52.el5
dovecot-1.0-1.2.rc15.el5
spamassassin-3.1.7-4.el5
squirrelmail-1.4.8-4.el5
openssl-0.9.8b-8.3.el5
openssl-devel-0.9.8b-8.3.el5
procmail-3.22-17.1.el5.centos
mutt-1.4.2.2-3.el5

网上有网友说sendmail-8.13已经包含了cyrus-sasl的功能,下面软件包不是必要安装(没有验证,所以我还是安装了)
cyrus-sasl-plain-2.1.22-4
cyrus-sasl-lib-2.1.22-4
cyrus-sasl-md5-2.1.22-4
cyrus-sasl-2.1.22-4
cyrus-sasl-devel-2.1.22-4


mailman-2.1.9-2.i386.rpm #这个软件包是用来管理邮件列表的

sharutils-4.6.1-2.i386.rpm
上面这个包里面有uuencode和uudecode,可以用来译码和解码压缩文件
但是我用这个配置mail命令在命令和那个发送带附件的邮件没有成功

note:
用rpm包来安装或者用yum来安装
推荐使用yum安装,自动解决软件包之间依赖关系


2)配置IMAP/POP3
[root@mail ~]#vi /etc/dovecot.conf
去掉下面前面的#,其他功能(如TLS/SSL)根据需要适当配置
protocols = imap imaps pop3 pop3s


重新启动
[root@mail sasl2]# service dovecot restart

定义开机自动启动
[root@mail sasl2]# chkconfig --level 12345 dovecot on

查看端口是否工作正常:
#netstat -utl
tcp        0      0 *:imaps                     *:*                         LISTEN     
tcp        0      0 *:pop3s                     *:*                         LISTEN     
tcp        0      0 *:pop3                      *:*                         LISTEN     
tcp        0      0 *:imap                      *:*                         LISTEN 


3)安装clamav杀毒软件
从下面的网站下载clamav
http://www.clamav.net/download

[root@mail ~]# groupadd clamav
[root@mail ~]# useradd -g clamav -s /bin/nologin -c "Clam AntiVirus" clamav
[root@mail ~]# mkdir /etc/clamav
[root@mail ~]# chown -R clamav.clamav  /etc/clamav

[root@mail ~]# cp clamav-0.91.2.tar.gz  /usr/src
[root@mail ~]# tar zxvf clamav-0.91.2.tar.gz
[root@mail clamav-0.91.2]# cd clamav-0.91.2
[root@mail clamav-0.91.2]# ./configure --sysconfdir=/etc/clamav --enable-milter
[root@mail clamav-0.91.2]# make
[root@mail clamav-0.91.2]# make install

配置clamav的主配置文件
#vi /etc/clamav/clamd.conf
请先将文件中的 Example 这行删除掉或在其前面加上 # 注释掉
去掉注释或更改下面行的值
LogFile /var/log/clamav/clamd.log
LogFileMaxSize 2M
PidFile /home/clamav/clamd.pid
DatabaseDirectory /usr/local/share/clamav
LocalSocket /home/clamav/clamd.sock
ScanMail yes
ScanArchive yes
ArchiveMaxFiles 1000
MaxThreads 200
MaxDirectoryRecursion 15
User clamav
这样 clamav 就基本可以工作了

接下来要下载病毒资料库
首先编辑 /etc/clamav/freshclam.conf 文件
[root@mail clamav-0.91.2]#  vi /etc/clamav/freshclam.conf
请先将文件中的 Example 这行删除掉或在其前面加上 # 注释掉
去掉次行注释并修改为  UpdateLogFile /var/log/clamav/freshclam.log


在 DatabaseMirror database.clamav.net 行下面在加入几个地址,更多地址请参考文档 clamav.pdf
DatabaseMirror clamav.inet6.fr
DatabaseMirror clamav.netopia.pt
DatabaseMirror clamav.sonic.net

这样该文件就可以了。若升级数据库时无法连接就注释掉DatabaseMirror database.clamav.net 行,留下剩下的行.
下面生成/var/log/freshclam.log 文件
[root@mail clamav-0.91.2]# mkdir /var/log/clamav
touch /var/log/clamav/clamd.log
touch /var/log/clamav/freshclam.log
chmod 600 /var/log/clamav/freshclam.log
chmod 600 /var/log/clamav/clamd.log
chown clamav /var/log/clamav/clamd.log
chown clamav /var/log/clamav/freshclam.log


运行数据库的更新
[root@mail clamav-0.91.2]#  freshclam -d -c 2   (-d 选项为该命令以 daemon 方式运行 -c 2 这个选项的意思是每天检查2次数据库更新)
[root@mail clamav-0.91.2]#  freshclam --quiet --stdout 手动更新数据库

更新结束后请到 /usr/src/clamav-0.91.2/test 目录下检查数据库里所认知的病毒数量
执行 clamscan test1


配置 sendmail.mc 文件以支持clamav杀毒
需要增加如下代码:

dnl ## milter clmilter
INPUT_MAIL_FILTER(`clmilter', `S=local:/home/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clmilter')

然后生成 sendmail.cf 文件
[root@mail clamav-0.91.2]#  m4 /etc/mail/sendmail.mc>/etc/mail/sendmail.cf

现在启动邮件过滤系统:
[root@mail clamav-0.91.2]#  clamd
[root@mail clamav-0.91.2]#  clamav-milter -Nnqlo --max-children=30 /home/clamav/clmilter.sock
[root@mail clamav-0.91.2]#  freshclam -d -c 2

[root@mail clamav-0.91.2]#  service sendmail restart

测试过滤带病毒的邮件
发送病毒邮件后你会在sendmail的Log(一般在/var/log/maillog)中看见如下提示:

Apr  1 13:36:01 linux sendmail[1429]: i315ZxnL001429: from=<liuzy@abc.gov.cn>;, size=41535, class=0, nrcpts=1,
msgid=<20040401053559.M29606@abc.gov.cn>;, proto=ESMTP, daemon=Daemon0, relay=linux.abc.gov.cn [127.0.0.1]
Apr  1 13:36:01 linux sendmail[1429]: i315ZxnL001429: Milter: data, discard

病毒邮件被系统 discard 了, 同时在 /var/log/clamav/clamd.conf 中也记录了病毒类型
这种情况下发病毒邮件的人在没有被提醒的情况下被系统将其发出的邮件给丢弃了, 收件人不会得到病毒邮件也不会被提醒有人试图给你发送
病毒邮件!

若启动 clamav-milter 时用的参数只有 -lo 的话,则系统会警告发送病毒邮件的人,告诉他发送失败,sendmail 同时向邮件的接收者发送一
封信,告诉他那个人试图发送病毒邮件给自己。(我觉得这样不好,因为这样若有很多病毒邮件的话,即使病毒没发过来,提醒消息也够讨厌
的了,没准还会被提醒消息给淹没呢,所以我使用了Nnqlo 这几个参数

-n  在扫描邮件时不加入 clamav的版本号
-N  当用户发送带病毒的邮件时不警告他,而是立刻丢弃。但收件人会得到提示。
-q  安静方式, 不发出任何信息 (包括在日志中也不做过多提示,遇到病毒时也只有 Milter : discard 一句话)
-o  对从系统向外发的邮件做过滤
-l  对发到系统的邮件做过滤


建议用户做成启动脚本

/etc/rc3.d/S91clamav 内容如下:

/usr/local/bin/freshclam -d -c 2
/usr/local/sbin/clamd
/usr/local/sbin/clamav-milter -lo /home/clamav/clmilter.sock

[root@mail clamav-0.91.2]#  chmod 777 /etc/rc3.d/S91clamav

--------------------------------------------------------
我遇到的一些问题:
1、tar clamav.tar.gz 后在 /usr/local/sbin/ 下 没有 clamav-milter 文件
解决办法: 先安装 sendmail-devel ,然后安装gmp  gmp-devel ,在重新 configure  make  make install
(这个状况我觉得解决的比较牵强,请高手指正)

2、kill clamav-milter 进程不成功
解决方法:  kill -9 进程号, 虽然进程杀掉了,可是启动不起来了,解决方法为 杀掉后删除 /home/clamav/clmilter.sock 文件,然后启动clamav-milter 就可以了。

3、升级病毒库时提示 数字签名错
解决方法:安装gmp  gmp-devel,   在重新 configure  make  make install

4、安装后在升级病毒库后也只能扫描某些病毒
解决办法:
在安装后一定要进入 test 目录, 用  clamscan test1 , 这样才能让系统认识所有的病毒
(我自己的感觉。的确在做这步之前只能过滤一些病毒,但做了这步后,就可以过滤全部病毒了。 请高手给些指教)

4)配置sendmail.mc文件以支持多种功能
Sendmail 相关安装配置介绍
相关配置文件及功能:
/etc/mail/access  sendmail 访问数据库文件
/etc/mail/aliases  邮箱别名
/etc/mail/local-host-names  sendmail 接收邮件主机列表
/etc/mail/mailer.conf  邮寄配置程序
/etc/mail/mailertable  邮件分发列表
/etc/mail/sendmail.cf  sendmail的主配置文件
/etc/mail/virtusertable  虚拟用户和域列表

4.1)配置sendmail.mc以支持多邮件队列,这条是手工加上去的.作用是启动多个邮件队列,为了获得更好的传输性能。
添加下面一行
[root@mail clamav-0.91.2]# vi /etc/mail/sendmail.mc
define(QUEUE_DIR, `/var/spool/mqueue/q*')dnl

[root@mail clamav-0.91.2]# cd /var/spool/mqueue
[root@mail mqueue]# mkdir q1 q2 q3 q4 q5 q6
[root@mail mqueue]# chown root.smmsp q*

 

4.2)配置sendmail的sasl认证 
去掉下面两行前面的dnl
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

TRUST_AUTH_MECH”的作用是使sendmail不管access文件中如何设置,都能 relay 那些通过EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式验证的邮件,”confAUTH_MECHANISMS" 的作用是确定系统的认证方式。Outlook Express支持的认证方式是LOGIN。


相关的配置文件
[root@mail mqueue]# cat /usr/lib/sasl2/Sendmail.conf
pwcheck_method:saslauthd
#mech_list:login plain

将这个 文件复制成:smtpd.conf,即:
[root@mail mqueue]# cd /usr/lib/sasl2/
[root@mail sasl2]#cp Sendmail.conf smtpd.conf

重新启动
[root@mail sasl2]# service saslauthd restart

定义开机自动启动
[root@mail sasl2]# chkconfig --level 12345 saslauthd on

现在可以运行saslauthd了,并进行测试。
# cd /usr/sbin
# ./saslauthd -a shadow
用shadow的用户和密码进行验证
# ./testsaslauthd -u userid -p password
0: OK "Success."

4.3)邮件转发域的配置
将下面行中的127.0.0.1改为0.0.0.0
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

把里面的127.0.0.1改成0.0.0.0,这是让sendmail监听在全部网络端口上,而不是只监听在lo上,有很多人抱怨sendmail没办法收信,这是最基本要修改的地方(如果只要在本地监听的话,请直接使用127.0.0.1,防止被人利用)

我只能telnet 127.0.0.1这个地址.用计算机的IP地址来代替的话就不行了.我vi sendmail.mc在第105行.我们把127.0.0.1 这个地址改成0.0.0.0这样再重起sendmail就可以了

编辑 vi /etc/mail/local-host-names 把邮件服务器使用的域名给添加上去,在里面添加邮件虚拟主机,并添加要转发的域,如:
mail.test.hk
test.hk

将希望该邮件服务器使用的邮箱名加进去,比如邮箱为:xxx@abc.com.cn 则将abc.com.cn加入到该文件中
在做DNS的时候要在正向解析上添加一个 IN  MX 5(参数是设优先级的)


配置邮件列表别名:
[root@mail mail]# vi /etc/aliases
最后一行加入:
proc:ruochen,test1,test2,ruochen@gmail.com
(给proc发邮件,ruochen,test1,test2,ruochen@gmail.com可以收到邮件)
#newaliases 使别名生效.

Open /etc/aliases or /etc/mail/aliases
and in it input this
nameoflist: username1,username2,username3,username4
and then save exit and type newalises or sendmail -bi and your done.

If you have a username that has the same name as the nameoflist then you going to make a loop. eg. say you have a list sales: and you have a user called sales that is in that list, you going to loop that mail over and over, then use the \ to stop it...
eg.
sales:  username1,username2,username3,\sales,username4

但是这样做,可能在几年以后,越来越多,你看你的aliases里的include(包括)功能,使用文件类型的方法达到邮件群发的目的。
[root@mail mail]# vi /etc/mail/proc
ruochen, \
test1, \
......
ruochen@gmail.com
最后一个不用带", \",与变量设置规则相符.

[root@mail mail]# vi /etc/aliases
ltocc:   :include:/etc/mail/proc

用newaliases生成新的db文件
[root@mail mail]# newaliases

配置access / virtusertable等文件,并用下面命令生成db文件
[root@mail ~]# cd /etc/mail/
[root@mail mail]# cp /etc/aliases* /etc/mail/
[root@mail mail]# rm /etc/aliases.db
[root@mail mail]# makemap hash access,db[root@mail  mail]# makemap hash virtusertable,db 

4.4)配置TLS的支持
去掉下面语句之前的dnl,并改为下面这个样子
define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
define(`confCACERT', `/etc/pki/tls/certs/cacert.pem')dnl
define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl

然后生成 sendmail.cf 文件
m4 /etc/mail/sendmail.mc>/etc/mail/sendmail.cf

为TLS生成证书:
#cd /etc/pki/tls/certs/
 
生成CA的签名及证书
# openssl req -new -x509 -keyout cacert.pem -out cacert.pem -days 3650
Generating a 1024 bit RSA private key
...............................++++++
.....++++++
writing new private key to 'cacert.pem'
Enter PEM pass phrase:      <----此处输入CA密码
Verifying - Enter PEM pass phrase:    <----重复上个密码
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN    <----此处为国家名
State or Province Name (full name) [Some-State]:GD    <----此处为地域(省)名
Locality Name (eg, city) []:DG    <----此处为城市名
Organization Name (eg, company) [Internet Widgits Pty Ltd]:BENET  <----此处为单位名
Organizational Unit Name (eg, section) []: PROC   <----此处为部门名
Common Name (eg, YOUR name) []:    <----此处为你的名字或服务器的名字,也可省略
Email Address []:ruochen@mail.test.hk    <----此处为管理邮件
 
生成Sendmail的证书
# openssl req -nodes -new -x509 -keyout sendmail.pem -out sendmail.pem -days 3650
Generating a 1024 bit RSA private key
..++++++
...................................++++++
writing new private key to 'sendmail.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:GD
Locality Name (eg, city) []:DG
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:PROC
Common Name (eg, YOUR name) []:
Email Address []:ruochen@mail.test.hk
 
查看证书内容
# openssl x509 -noout -text -in sendmail.pem
 
修改证书权限,如果没有此步骤,启动sendmail时会报starttls启动错误
#chmod 400 mysmtp.pem

查看openssl的版本号,以验正是否安装正确
[root@mail mail]# openssl version -a
OpenSSL 0.9.8b 04 May 2006
built on: Wed Mar 14 02:08:03 GMT 2007
platform: linux-elf
options:  bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) blowfish(idx)
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -I/usr/kerberos/include -DL_ENDIAN -DTERMIO -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=generic -fasynchronous-unwind-tables -Wa,--noexecstack -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
OPENSSLDIR: "/etc/pki/tls"
engines:  dynamic padlock
 
五、启动并验正Sendmail
1.执行如下命令,查看sendmail是否sasl2方式的身份认证(按我们如上的步骤编译安装,sendmail是支持此认证的)及starttls:

[root@mail ~]# sendmail -d0.1 -bv root
Version 8.13.8
 Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
                MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
                NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF SOCKETMAP STARTTLS
                TCPWRAPPERS USERDB USE_LDAP_INIT

============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = mail
  (canonical domain name) $j = mail.test.hk
         (subdomain name) $m = test.hk
              (node name) $k = mail
========================================================

ruochen... deliverable: mailer local, user ruochen
 
请查看执行结果中是否显示为蓝色色字体的部分。如果有,则可进行以下步骤,否则,请检查前面的编译安装过程是否有遗漏或错误之处,或者查看日志以检查错误之所在。也可以运行如下命令仔细检查问题所在。
[root@mail ~]#  sendmail -O loglevel=14 -bs

2.启动sendmail,
[root@mail ~]#  sendmail -bd -q30m
 
注:Sendmail的命令参数的含义如下:
   -b:指定Sendmail在后台运行,并且监听端口25的请求。
   -d:指定Sendmail以Daemon方式运行(守护进程)。
   -q:当Sendmail无法将邮件成功地发送到目的地时,它会将邮件保存在队列里。该参数指定邮件在队列里保存的时间。例子里的30m表示保留30分钟。

3.查看Sendmail对于认证及TLS的支持是否已经打开

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.benet.org ESMTP Sendmail 8.13.8/8.13.8; Sun, 25 Mar 2007 01:46:08 +0800
ehlo localhost    <--此句为输入的命令
250-mail.benet.org Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP
 
请注意查看输出中有没有类同蓝色的两行。

 

5)配置SPAM防垃圾功能
[root@mail ~]# cat /etc/mail/spamassassin/local.cf
required_hits 10.0
#rewrite_subject 1
required_score 5.0
rewrite_header Subject *****SPAM*****
report_safe     1
use_bayes       1
bayes_auto_learn        1
skip_rbl_checks         1
use_razor2      0
use_pyzor       0
ok_locales      all

[root@mail ~]# touch /etc/procmailrc
[root@mail ~]# cat /etc/procmailrc
:0fw
    * < 200000
| /usr/bin/spamassassin

此规则为扫描小于200k的邮件

重新启动
[root@mail sasl2]# service spamassassin restart

定义开机自动启动
[root@mail sasl2]# chkconfig --level 12345 spamassassin on

6)配置webmail
[root@mail ~]# cd /var/www/html/
[root@mail html]# mkdir webmail
[root@mail html]# chown apache.root webmail/

安装plugins,一支持用户在线修改密码,需要下面两个插件
compatibility
change_passwd

配置启用plugins
[root@mail html]#  cd /var/www/html/webmail/config
[root@mail config]# ./conf.pl

note:
apache的配置可以在网上找,有很多大侠写了很多很好的帖子

 


7)用mailman配置邮件列表
[root@mail ~]# rpm -ivh mailman-2.1.9-2.i386.rpm
[root@mail ~]# mkdir /va/www/html/mailman
[root@mail ~]# chown apache.apache /va/www/html/mailman
[root@mail ~]# cd /usr/lib/mailman/bin/
[root@mail bin]# ./mmsitepass your_site_password


新建一个maillist(也可以)
[root@mail bin]# ./newlist  list_name
将生成出来的别名拷贝到/etc/aliases,然后用 newaliases 命令重新生成aliases.db

删除一个maillist
[root@mail bin]#  ./rmlist list_name

[root@mail bin]# service mailman restart
[root@mail bin]# service httpd restart

用下面的链接来管理mailman
http://ip/mailman/admin
http://ip/mailman/listinfo
http://ip/mailman/create

8)安全相关
参考樊强的一片帖子---<<增强Sendmail的抗DoS攻击能力>>
http://www.fanqiang.com

9)其他
9.1)sendmail的启动文档一般是
/etc/init.d/sendmail

9.2)在sendmail里如何控制邮箱大小
在 /etc/mail/sendmail.cf 中设置
# maximum message size
#O MaxMessageSize=1000000

9.3)在sendmail.mc中配置RBL,之后记得用m4生成新的cf文件
FEATURE(`enhdnsbl', `cbl.anti-spam.org.cn', `"451 Temporary lookup failurefor " $& {client_addr}" in anti-spam.org.cn"', `t', `127.0.8.2.')
FEATURE(`enhdnsbl', `cdl.anti-spam.org.cn', `"451 Temporary lookup failurefor " $& {client_addr}" in anti-spam.org.cn"', `t', `127.0.8.4.')
FEATURE(`enhdnsbl', `cblplus.anti-spam.org.cn', `"451 Temporary lookup failurefor " $& {client_addr}" in anti-spam.org.cn"', `t', `127.0.8.6.')
FEATURE(`enhdnsbl', `cblless.anti-spam.org.cn', `"451 Temporary lookup failurefor " $& {client_addr}" in anti-spam.org.cn"', `t', `127.0.8.5.')


9.4)sendmail如何实现邮件的内发和外发

在/etc/mail/access文件中,可以定义这样的:
From:A@B.C                    OK
TO: D@E.F                     RELAY
CONNECT:X@Y.Z                 REJECT
.....
其中,
From、To和Connect表示来自、发往和连接。
OK、RELAY和REJECT表示可以、转发和拒绝。
当然还有很多,可以自己去看看关于access的介绍。
不过,在编辑之后,别忘了使用如下命令生成access.db的hash库。
#makemap hash access.db < access


9.4)用mutt在命令行或者脚本种发送附件
mutt -s "subject" -a  /path/to/att.tar.gz  your@email.com


9.5)senmail邮件的备份
因为所有的邮件都是做为一个文件(通常是帐号名)存在于/var/spool/mail下的,所以只能把整个文件都备份下来


9.6)senmail邮件帐号的备份
把用戶名導出成一個文件.如:userlist.txt
username::600:600:fullname:/home/username:/bin/bash
密碼一個文件,如:passwdlist.txt]
username:passwd

然後執行:
newusers < userlist.txt
再執行:
chpasswd < passwdlist.txt

 

阅读(1840) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册