sendmail的别名和forward
1.关于直接用IP地址发信
mail user@[166.111.IP.Address]
只要用[]将IP地址括起来就行了 .
2.关于alias
sendmail在/etc下有两个文件 aliases和aliases.db, 后者是前者用newaliases 生成的别名数据库. 你可以手工编辑/etc/aliases, 然后运行newaliases更新数据 库(其实newaliases是个到sendmail的 symlink) .
eg: nickname : [email protected]
alias-name: real-user-account
则以后mail nickname就可以将信寄到[email protected]处 . 而别人寄给[email protected]的信就会转给真正的用户real-user-account .
3.关于forward
在你的$HOME目录下面编辑一个.forward文件, 里面写上你要forward的目的e-mail 地址或本机的用户名, 就可以自动将信 forward到相应地址 .
eg: .forward: [email protected]
或 other-user-account 则给此人的e-mail会forward到hotmail或other-user-account处 .
4.关于vacation
去找一个vacation包(如RedHat的contrib中有vacation的rpm), 装上后就一个 /usr/bin/vacation程序和一个man.
先运行vacation, 它会让你编辑$HOME/.vacation.msg文件, 就是要发回给对方 告诉他你现在不看信的东西啦. 然后编辑$HOME/.forward文件, 写这样一句 \username, "|/usr/bin/vacation username", username 要换回你自己的了 然后运行vacation -I建立$HOME/.vacation.db就好了 (看看man更详细).
5.关于sendmail的一些文件
/var/log/maillog sendmail的log, 分析错误有用
/var/spool/mail/$USER 进来的信, 每个用户一个文件
/var/spool/mqueue mail queue, 可以用mailq看队列中待发的信 (mailq也是 sendmail的symlink了).
dfxxxxxx 这是信的内容
qfxxxxxx 这是信的subject和别的信息 (反正每信一个号了, 配对的) .
/etc/sendmail.cf sendmail的配置文件, 改动它可要小心
/etc/sendmail.cw 假如你的机器有好多alias的话就把名字写在 这个文件中, 这样写哪个都能收到信 .
sendmail转发邮件(Relay)的设置
先简单提一下转发的概念.
所谓转发,就是指通过这台Mail server 发送目的地是别的Mail server的油件.打个比方,有两台服务器 a.mail.org和b.mail.org,一封To: [email protected],可以先 发给A.mail.org,然后由A.mail.org发给B.mail.org.这个过程就是转发(relay). 使用一般的Mail Client实际上就是有一个转发过程,他不是 直接将信发往目的服务器,而是本地的Mail server,再通过 本地的Mail Server将信发送出去.随着网络安全等等问题 渐渐得到重视,转发功能也由缺省允许变成缺省禁止.
放开禁止的办法很多,首选是正确配制/etc/mail目录下的 几个文件.sendmail是通过类(Class)配合重写规则(rewrite rule) 来进行地址检查控制的,所以配制文件必须按照要求的格式来写. 一般的方法是将本地地址加入/etc/mail/ip_allow中, 格式如下:
A.
A.B.
A.B.C.
A.B.C.D
其他的子网表达方式都是非法的.
一个例子就是:
202.119.65.
202.119.66.
这样所有202.119.65.0-202.119.66.255的Mail client 都能通过我的Mail Server转发油件.
另一种方法是添加目的域名到relay_allow 中,比如将 :
mere.ml.org
test.org
加如relay_allow中, 所有法往[email protected]或[email protected]都将 被允许转发.
如果你所希望的是一种开放式的服务,不进行任何检查, 那重新生成sendmail.cf将是很不错的选择.
就以redhat为例,先安装sendmail-cf这个rpm包, 到/usr/lib/sendmail-cf目录下仔细阅读一下 README和README.check, 然后到cf目录中,编辑redhat.mc,将所有关于地址检查 的选项都删除掉,然后用命令 m4 ../m4/cf.m4 redhat.mc > redhat.cf 如果一切正常,redhat.cf就是生成的sendmail.cf 复制到/etc/sendmail.cf后,重启动一次sendmail 就可以了.
最后说上两句:Sendmail的检查功能十分强大,如果有 必要甚至可以做地址检察数据库. 不过个人还是比较喜欢qmail,简单易用,配置方便,没有 头疼的rewrite rule,可惜家里最后还是选择了sendmail 就是因为sendmail的rewrite rule实在太cool了,想干 什么就干什么,比较合适个人定制使用.
发布人:netbull 来自:歪歪鱼的Linux