分类:
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
[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=<>;, size=41535, class=0, nrcpts=1,
msgid=<>;, 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
将希望该邮件服务器使用的邮箱名加进去,比如邮箱为: 则将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, \
......
最后一个不用带", \",与变量设置规则相符.
[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
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
8)安全相关
参考樊强的一片帖子---<<增强Sendmail的抗DoS攻击能力>>
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: 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
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