Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

sendmail大全

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

制文件不存在,则procmail只是简单的将邮件保存到用户的信箱中。

  一般来说,.procmailrc文件由配置行和行为规则组成。配置行是一些基本参数的设置 
,不过一般配置行可以不写;而行为规则通常由(查询)(行为)完成,下面是一个简 
单的例子:

:0 H

* ^From:.*test@mydomain.com

{

{

:0 c

! who@somewhere.edu

:0 

testsave

}

  这个.procmailrc文件将所有来自test的信件转发给who@somewhere.edu,同时在本地 
留一个保存一个备份在文件testsave中。

  上面的形式是.procmailrc行为规则的基本格式,规则的一般格式是

:0 选项

[零个或多个条件,每个一行]

    [动作命令]

:0表示开始一条规则,后面可以加上一些单字符的选项,选项主要有下面的一些:

H 搜索匹配邮件头部

B 搜索匹配整个邮件

D 匹配时区分大小写

A 如果前面最近的一个没有A或a选项的规则执行,执行本规则

a 如果上面一条规则执行,则本规则执行

E 同A相反,前面最近的没有E或e选项的规则没有执行,则执行本规则

e 同a相反

h 通过管道传送邮件首部(缺省)

b 通过管道传送邮件主体(缺省)

c 复制一个邮件

I 忽略所有写操作中的错误 

r 原始模式,即procmail不对mail进行任何模式的处理 

条件用一个*号开始,后面跟上正则表达式(参考第十一章)。

  动作命令就是procmail在规则成功之后使用的命令,一般的命令有下面一些:

{}

  开始一个语句段,表示把一组命令集合成一个动作。如果你要嵌套处理规则,(例如 
,对于来自test的邮件,区分是含有computer字符串还是含有physics字符串)那么必须 
使用语句段把子规则括起来。

!

转发信件给某个用户 

  启用管道将邮件传送给后面的程序,例如|auto-reply表示启动auto-reply程序并且将 
邮件内容作为标准输入传递给它

  任意文件名

  将邮件存入某个文件。如果文件已经存在,就添加在文件的末尾。

显然,前面的.procmailrc的含义是:

:0 H开始了一个对邮件头部的搜索,^From.*test@mydomain.com表示邮件头部发现了 
From: test@mydomain.com之类的内容,于是行为规则被启动。这里的行为规则是一个语 
句块,因此在语句段里面的子规则被执行。

:0 c开始的规则首先复制一份副本,然后将邮件转发给who@somewhere.edu,这样邮件 
本身消失了,但是副本仍然存在,于是副本继续执行下面的:0规则组,这个规则是存储 
邮件到文件testsave,于是,邮件副本也被处理掉了,正好规则结束。

  对于熟悉perl或C语言的的用户,很容易用procmail的管道功能做出邮件的自动回复程 
序,这里不再介绍了,想进一步了解procmail的用户可以用

man procmail

man procmailrc 

man procmailex

获得更加详细的信息。

7.1.5 Fetchmail 

  许多用户有多个邮件账户,有些在你的管理范围之内,有些在别的服务器上面。管理 
所有这些邮件是非常恶心的事情。另外,也许你的系统仅仅是一个拨号代理(参考第八 
章),不可能始终接在internet上面。你需要的是在系统连接到internet的时候发出电 
子邮件,同时自动去接收电子邮件。在国内,典型的做法是每人申请一个本地电子邮件 
账户和一个免费电子邮件账号,问题就是,如何从另外的ISP提供的电子邮件账号哪里自 
动地接收邮件?

  当然你可以让你的用户自己解决这个问题,不过这种僵硬的方法不见得合适。一般我 
们采用另外的办法,就是fetchmail,它是一个自动的邮件接力程序,可以让它从远程的 
pop3账号处取得邮件,然后扔进用户的本地邮箱。(关于pop3的情况参考下一节)

  可以直接用命令行调用fetchmail:

$ fetchmail –p [协议] -u [用户名] [服务器]

fetchmail得到的信息将直接投入localhost机器,账号是你启动fetchmail时使用的账 
号。

$ fetchmail -p POP3 -u yuanban mail.asnc.edu.cn

Enter password for yuanban@mail.asnc.edu.cn:

  使用pop3协议从mail.asnc.edu.cn取得yuanban的信件。fetchmail要求你输入yuanba 
n的密码,然后进行验证,成功的话会出现下面的信息:

1 message for yuanban at mail.asnc.edu.cn (551840 octets).

reading message 1 of 1 (551840 octets) ................................... 
.....d


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:SSH使用指南   下一篇:SSL中间人攻击

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号