??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲av片在线观看播放,亚洲国产情侣一区二区三区,亚洲色图激情文学http://www.tkk7.com/lyjjq/category/36891.html我喜Ƣjava新东西zh-cnMon, 30 Apr 2012 09:07:41 GMTMon, 30 Apr 2012 09:07:41 GMT60postfix 邮gl护http://www.tkk7.com/lyjjq/articles/377033.html强强强强Sun, 29 Apr 2012 10:38:00 GMThttp://www.tkk7.com/lyjjq/articles/377033.htmlhttp://www.tkk7.com/lyjjq/comments/377033.htmlhttp://www.tkk7.com/lyjjq/articles/377033.html#Feedback0http://www.tkk7.com/lyjjq/comments/commentRss/377033.htmlhttp://www.tkk7.com/lyjjq/services/trackbacks/377033.htmlpostfix 如何删除队列中的邮g

# postfix 如何删除队列中的邮g

linux @ 06 二月 2009,

[root@mail ~]# mailq 查看队列邮g

postsuper -d ALL q样删除所有邮件啦

[注意Q大写有区别,h意大写Q]

|上看到QPostfix 邮g队列理的几?Perl 程序,pfdel.pl 是用来删除队列中指定用户的邮件的Qluserdel.pl 是用来删除队列中无效用户的邮件的Qmoqdel.pl 是用来删除队列中邮箱配额已满的用L邮g的,jmoqdel.pl 是删除邮配额已满的用户的垃N件箱的。我装的是EMOS1.3Q找不到q几个小E序?/p>

用外面的邮g服务器发点EDMQ一直有问题Q成功太,q脆用自q邮g服务器发送,谁知?W多封邮g是发出去了,全部堵在我们自己的服务器上,邮g服务器给堉|?img class="aligncenter size-medium wp-image-651" title="spool" alt="spool" src="http://yoozhu.com/wp-content/uploads/2009/02/spool-300x139.jpg" width="300" height="139" />只好删除队列中的垃圾邮g了,|上说是 mailq | tail +2 | awk ‘BEGIN { RS = “” } / chen@example\.org$/ { print $1 }’ | tr -d ‘*!’ | postsuper -d

参考官|写个脚本也不行Q应该多研究下还可以的,脚本如下Q?/p>

Q: 删除邮g队列

A: mailq | tail +2 | awk ‘BEGIN { RS = “” } / chen@example\.org$/ { print $1 }’ | tr -d ‘*!’

| postsuper -d -

[root@linuxas3 root]# vi mailqueue
#!/bin/bash
#
netkiller@9812.net
queue=$1
# echo ${queue}
DELETE=”mailq | tail +2 | awk  ’BEGIN { RS = \”\” } /${queue}$/ { print \$1 }’ | tr -d ‘*!’

| postsuper -d -”
echo ${DELETE} > queue
chmod 755 queue
./queue
[root@linuxas3 root]# chmod 755 mailqueue
[root@linuxas3 root]# ./mailqueue chen@example\\.org
mailq | tail +2 | awk ‘BEGIN { RS = “” } /chen@example\.org$/ { print $1 }’ | tr -d ‘*!’ |

׃邮g中有一些正帔RӞ所以只能删除特定字W的垃圾邮gQ通过mailq昄出来邮g队列Q?AB97F815E* 2749 Thu Feb 5 15:48:38 web1@shequsz.com

szmaxoni@public.szptt.net.cn   删除邮g只需要命令postsuper -d 2AB97F815E卛_。应该通过道可以单实玎ͼ但是我对使用道不熟悉,只好多走两步?#8230;…

[root@mail ~]# mailq |grep shequsz\.com >>/home/maillist 到出包含shequsz.com的垃N件到maillist

[root@mail home]# awk ‘{print $1}’ maillist >>/home/mywang/dellist 把邮件ID导出来,查看下如果带*Q需要编辑替换下

[root@mail mywang]# cat delmail.sh  ~辑一个脚本,把文仉面ID逐个匚w然后删除邮g

for i in `cat dellist`;

do  postsuper -d $i;

done

[root@mail mywang]# sh delmail.sh

postfix有四U不同的邮g队列Qƈ且由队列理q程l一q行理Q?/span>


  1Q?maildropQ本地邮件放|在maildrop中,同时也被拯到incoming中?/span>

  2Q?incomingQ放|正在到达或队列理q程未发现的邮件?/span>

  3Q?activeQ放|队列管理进E已l打开了ƈ正准备投递的邮gQ该队列有长度的限制?/span>

  4Q?deferredQ放|不能被投递的邮g?/span>


postfix日常l护

启动postfix        postfix start

停止postfix        postfix stop

重新dpostfix配置文g     postfix reload



立即投递队列中所有邮?慎用)           postfix flush


查看队列邮g    postqueue -p ?mailqpostqueue -p |tail


使用postsuper 来维护队列。一般是先用mailq查看队列里的邮gQ找到对应的idQ然后用postsuper -d来删除。例如id?EAF3A9B 那么postsuper -d 0EAF3A9B


Q: 删除邮g队列


A: mailq | tail +2 | awk ‘BEGIN { RS = “” } / chen@example\.org$/ { print $1 }’ | tr -d ‘*!’ | postsuper -d


详细要看mailq和postsuper的用?/span>


修复队列以及M权限错误

postfix check

查看邮gpȝ日志

tail -f /var/log/maillog



强强 2012-04-29 18:38 发表评论
]]>
Postfix的配|详?http://www.tkk7.com/lyjjq/articles/366100.html强强强强Sun, 11 Dec 2011 11:36:00 GMThttp://www.tkk7.com/lyjjq/articles/366100.htmlhttp://www.tkk7.com/lyjjq/comments/366100.htmlhttp://www.tkk7.com/lyjjq/articles/366100.html#Feedback0http://www.tkk7.com/lyjjq/comments/commentRss/366100.htmlhttp://www.tkk7.com/lyjjq/services/trackbacks/366100.html
4.1 postfix的配|文件结?br />
postfix的配|文件位?etc/postfix下,安装完postfix以后Q我们可以通过ls命o查看postfix的配|文Ӟ

[root@mail postfix]# ls

install.cf main.cf master.cf postfix-script

q四个文件就是postfix最基本的配|文Ӟ它们的区别在于:

mail.cfQ是postfix主要的配|文件?br />
Install.cfQ包含安装过E中安装E序产生的postfix初始化设|?br />
master.cfQ是postfix的masterq程的配|文Ӟ该文件中的每一行都是用来配|postfix的组件进E的q行方式?br />
postfix-scriptQ包装了一些postfix命oQ以便我们在linux环境中安全地执行q些postfix命o?br />
4.2 postfix的基本配|?br />
postfix大约?00个配|参敎ͼq些参数都可以通过main.cf 指定。配|的格式是这LQ用{号q接参数和参数的倹{如Q?br />
myhostname Q?mail.mydomain.com

{号的左Ҏ参数的名Uͼ{号的右Ҏ参数的| 当然Q我们也可以在参数的前面加上$来引用该参数Q如Q?br />
myorigin = $myhostname

虽然postfix?00个左右的参数Q但?postfix为大多数的参数都讄了缺省|所以在让postfix正常Z服务之前Q你只需要配|ؓC多的几个参数。下面我们一h看一看这些基本的postfix参数。需要注意的是,一旦你更改了main.cf文g的内容,则必运?postfix reload命o使其生效?br />
1Q?myorigin

myorigin参数指明发g人所在的域名。如果你的用L邮g地址为user@domain.com,则该参数指定@后面的域名。缺省地Q?postfix使用本地L名作为myoriginQ但是徏议你最好用你的域名,因ؓq样更具有可L。比如:安装postfix的主Zؓ mail.domain.com则我们可以这h定myorigin:

myorigin = domain.com

当然我们也可以引用其他参敎ͼ如:

myorigin = $mydomain

2Q?mydestination

mydestination参数指定postfix接收邮g时收件h的域名,换句话说Q也是你的postfixpȝ要接收什么样的邮件。比如:你的用户的邮件地址为user@domain.com, 也就是你的域为domain.com, 则你需要接收所有收件h为user_name@domain.com的邮件。与myorigin一P~省圎ͼpostfix使用本地L名作?mydestination。如Q?br />
mydestination = $mydomain

mydestination = domain.com

3Q?notify_classes

在postfixpȝ中,必须指定一个postfixpȝ理员的别名指向一个用P

只有q样Q在用户遇到问题时才有报告的对象Qpostfix也才能将pȝ的问题报告给理员。notify_classes参数是用来指定向postfix理员报告错误时的信息别。共有以下几U别:

bounceQ将不可以投递的邮g的拷贝发送给postfix理员。出于个人隐U的~故Q该邮g的拷贝不包含信头?br />
2bounceQ将两次不可投递的邮g拯发送给postfix理员?br />
delayQ将邮g的投递gq信息发送给理员,仅仅包含信头?br />
policyQ将׃UCE规则限制而被拒绝的用戯求发送给postfix理员,包含整个SMTP会话的内宏V?br />
protocolQ将协议的错误信息或用户企图执行不支持的命o的记录发送给postfix理员。同样包含整个SMTP会话的内宏V?br />
resourceQ将׃资源错误而不可投递的错误信息发送给postfix理员,比如Q队列文件写错误{等?br />
softwareQ将׃软g错误而导致不可投递的错误信息发送给postfix理员?br />
~省gؓQ?br />
notify_classes = resource, software

4Qmyhostname

myhostname 参数指定q行postfix邮gpȝ的主机的L名。缺省地Q该D讑֮为本地机器名。你也可以指定该|需要注意的是,要指定完整的L名。如Q?br />
myhostname = mail.domain.com

5Qmydomain

mydomain参数指定你的域名Q缺省地Qpostfixmyhostname的第一部分删除而作为mydomain的倹{你也可以自己指定该|如:

mydomain = domain.com

6Qmynetworks

mynetworks 参数指定你所在的|络的网l地址QpostfixpȝҎ其值来区别用户是远E的q是本地的,如果是本地网l用户则允许其访问。你可以用标准的A、B、Ccȝl地址Q也可以用CIDRQ无cd间\由)地址来表C?如:

192.168.1.0/24

192.168.1.0/26

7Qinet_interfaces

inet_interfaces 参数指定postfixpȝ监听的网l接口。缺省地Qpostfix监听所有的|络接口。如果你的postfixq行在一个虚拟的ip地址上,则必L定其监听的地址。如Q?br />
inet_interfaces = all

inet_interface = 192.168.1.1

4.3 postfix的UCEQunsolicited commercial emailQ控?br />
所谓UCE控制是指控制postfix接收或{发来自于什么地方的邮g?br />
~省圎ͼpostfix转发W合以下条g的邮Ӟ

* 来自客户端ip地址W合$mynetworks的邮件?br />
* 来自客户端主机名W合$relay_domains及其子域的邮件?br />
* 目的Cؓ$relay_domains及其子域的邮件?br />
~省圎ͼpostfix接受W合以下条g的邮Ӟ

* 目的Cؓ$inet_interfaces的邮件?br />
* 目的Cؓ$mydestination的邮件?br />
* 目的Cؓ$virtual_maps的邮件?br />
但是我们也可以通过下面的规则来实现更强大的控制功能?br />
1Q?信头qo

通过header_checks参数限制接收邮g的信头的格式Q如果符合指定的格式Q则拒绝接收该邮件。可以指定一个或多个查询列表Q如果新邮g的信头符合列表中的某一则拒绝该接攉件。如Q?br />
header_checks = regexp:/etc/postfix/header_checks

header_checks = pcre:/etc/postfix/header_checks

~省圎ͼpostfix不进行信头过滤?br />
2Q客LL?地址限制

通过smtpd_client_restrictions参数限制可以向postfix发vSMTP q接的客L的主机名或ip地址。可以指定一个或多个参数|中间用逗号隔开。限制规则是按照查询的顺序进行的Q第一条符合条件的规则被执行。可用的规则有:

reject_unknown_clientQ如果客L的ip 地址在DNS中没有PTR记录则拒l{发该客户端的q接h。可以用 unknown_client_reject_code参数指定q回l客h的错误代码(~省?50Q。如果你有用h有作DNS记录则不要启用该选项?br />
permit_mynetworksQ如果客L的ip地址W合$mynetworks参数定义的范围则接受该客L的连接请求,q{发该邮g?br />
check_client_access maptype:mapnameQ根据客L的主机名、父域名、ip地址或属于的|络搜烦access数据库。如果搜索的l果为REJECT 或?'[45]XX text' 则拒l该客户端的q接hQ如果搜索的l果为OK、RELAY 或数字则接受该客L的连接请求,q{发该邮g。。可以用access_map_reject_code参数指定q回l客h的错误代码(~省?554Q?br />
reject_maps_rblQ如果客L的网l地址W合$maps_rbl_domains参数的值则拒绝该客L的连接请求。可以用maps_rbl_reject_code参数指定q回l客h的错误代码(~省?54Q?br />
CZQ?br />
smtpd_client_restrictions = hash:/etc/postfix/access, reject_maps_rbl

smtpd_client_restrictions = permit_mynetworks, reject_unknown_client

该参数的~省gؓQ?br />
smtpd_client_restrictions =

也即接收来自M客户端的SMTPq接?br />
3. 是否hHELO命o

可以通过smtpd_helo_required参数指定客户端在SMTP会话的开始是否发送一个HELO命o。你可以指定该参数的gؓyes或no。缺省gؓQ?br />
smtpd_helo_required = no

4. HELOL名限?br />
可以通过smtpd_helo_restrictions参数指定客户端在执行HELO命o时发送给postfix的主机名。缺省地Q?postfix 接收客户端发送的L形式的主机名。可以指定一个或多个参数|中间用逗号隔开。限制规则是按照查询的顺序进行的Q第一条符合条件的规则被执行。可用的规则有:

reject_invalid_hostnameQ如果HELO命o所带的L名参CW合语法规范则拒l客h的连接请求。可以用invalid_hostname_reject_code参数指定q回l客h的错误代码(~省?01Q?br />
permit_naked_ip_addressQRFC要求客户端的HELO命o包含的ip地址攑֜Ҏ号内Q你可以用permit_naked_ip_address参数取消该限制。因为有的mail客户端不遵守该RFC的规定?br />
reject_unknown_hostnameQ如果客L执行HELO命o时的L名在DNS中没有相应的A ?MX 记录则拒l该客户端的q接h。可以用invalid_hostname_reject_code参数指定q回l客h的错误代码(~省?50Q?br />
reject_non_fqdn_hostnameQ如果客L执行HELO命o时的L名不是RFC规定的完整的域名则拒l客L的连接请求。可以用invalid_hostname_reject_code参数指定q回l客h的错误代码(~省?04Q?br />
check_helo_access maptype:mapnameQ根据客LHELO的主机名、父域名搜烦access数据库。如果搜索的l果为REJECT 或?'[45]XX text' 则拒l该客户端的q接hQ如果搜索的l果为OK、RELAY 或数字则接受该客L的连接请求。可以用access_map_reject_code参数指定q回l客h的错误代码(~省?54Q?br />
CZQ?br />
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname

5. RFC 821信头限制

RFC 821寚w件的信头做了严格的规定,但是q泛使用的sendmailq不?br />
持该规定Q所以对于该参数我们只能说不Q即Q?br />
strict_rfc821_envelopes = no

6. 通过发g人地址q行限制

可以用smtpd_sender_restrictions参数通过发g人在执行MAIL FROM命o时提供的地址q行限制。可以指定一个或多个参数|中间用逗号隔开。限制规则是按照查询的顺序进行的Q第一条符合条件的规则被执行。可用的规则有:

reject_unknown_sender_domainQ如果MAIL FROM命o提供的主机名在DNS中没有相应的A ?MX 记录则拒l该客户端的q接h。可以用unknown_address_reject_code参数指定q回l客h的错误代码(~省?50Q?br />
check_sender_access maptype:mapnameQ根据MAIL FROM命o提供的主机名、父域搜索access数据库。如果搜索的l果为REJECT 或?'[45]XX text' 则拒l该客户端的q接hQ如果搜索的l果为OK、RELAY 或数字则接受该客L的连接请求。可以用access_map_reject_code参数指定q回l客h的错误代码(~省?54Q。可以通过该参数过滤来自某些不受欢q的发g人的邮g?br />
reject_non_fqdn_senderQ如果MAIL FROM命o提供的主机名不是RFC规定的完整的域名则拒l客L的连接请求。可以用non_fqdn_reject_code 参数指定q回l客h的错误代码(~省?04Q?br />
~省圎ͼpostfix接受来自M发g人的邮g?br />
CZQ?br />
smtpd_sender_restrictions = hash:/etc/postfix/access, reject_unknown_sender_domain

7. 通过收g人地址q行qo

可以用smtpd_recipient_restrictions参数通过发g人在执行RCPT TO命o时提供的地址q行限制。缺省gؓQ?br />
smtpd_recipient_restrictions = permit_mynetworks, check_relay_domains

可以指定一个或多个参数|中间用逗号隔开。限制规则是按照查询的顺序进行的Q第一条符合条件的规则被执行。可用的规则有:

check_relay_domainsQ如果符合以下的条gQ则接受SMTPq接hQ否则拒l该q接Q可以用relay_domains_reject_code 参数指定q回l客h的错误代码(~省?04Q?br />
* 客户端主机名W合$relay_domains及其子域

* 目的Cؓ$inet_interfaces?mydestination?virtual_maps

permit_auth_destinationQ不客L的主机名Q只要符合以下的条gQ就

接受SMTPq接hQ?br />
* 解析后的目标地址W合$relay_domains及其子域

* 解析后的目标地址W合$inet_interfaces?mydestination?virtual_maps

reject_unauth_destinationQ不客L的主机名Q只要符合以下的条gQ就拒绝该客LSMTPq接hQ?br />
* 解析后的目标地址W合$relay_domains及其子域

* 解析后的目标地址W合$inet_interfaces?mydestination?virtual_maps

check_recipient_accessQ根据解析后的目标地址、父域搜索access数据库。如果搜索的l果为REJECT 或?'[45]XX text' 则拒l该客户端的q接hQ如果搜索的l果为OK、RELAY 或数字则接受该客L的连接请求。可以用access_map_reject_code参数指定q回l客h的错误代码(~省?54Q?br />
reject_unknown_recipient_domainQ如果收件h的邮件地址在DNS中没有相应的A ?MX 记录则拒l该客户端的q接h。可以用unknown_address_reject_code参数指定q回l客h的错误代码(~省?50Q?br />
reject_non_fqdn_recipientQ如果发件h在执行RCPT TO命o时提供的地址

不是完整的域名则拒绝其SMTPq接h。可以用The non_fqdn_reject_code参数指定q回l客h的错误代码(~省?04Q?br />
4.4 posftfix的性能控制

之所以对postfix的性能q行控制Q是Z在遇到邮仉暴时保证postfix可以正常q行。通常Q我们可以通过对下列postfix 参数的配|来调节postfix的性能Q这些参数都是通过mail.cf配置文gq行配置的,修改以后不要忘了q行postfix reload命o来配置生效?br />
1Q?q程数限?br />
可以通过default_process_limit 参数来控制postfixpȝ同时可以q行的最大进E数目。缺省值是50个?br />
2Q?对同一目标L的ƈ发连接限?br />
当向同一目标L发出SMTPq接Ӟpostfix初始化发Z个SMTPq接Q如果投递成功则增加q发的SMTPq接数目Q遇到拥塞时又减ƈ发连接的数目。postfix中通过以下的参数对同一目标L的ƈ发连接进行控Ӟ

* initial_destination_concurrencyQ控制对同一目标L的初始化q发q接数目。缺省gؓ2?br />
* default_destination_concurrency_limitQ控制初始化q接后对同一目标L的最大ƈ发连接数目。缺省gؓ10?br />
* local_destination_concurrency_limitQ控制对同一本地收g人的最大同时投递的邮g数目。缺省gؓ2Q因为对本地同一收g人投递邮件时投递工作只能一个接一个的q行Q所以设得在大也没用?br />
3Q?对同一邮件的收g人数目限?br />
通过default_destination_recipient_limit参数来控制postfix的投递代理(?br />
smtpq程Q可以将同一邮件发送给多少个收件h。缺省gؓ50。也可以用明指投递代理的参数来覆盖该~省倹{如用smtpd_recipient_limit来指定smtp投递代理可以将同一邮件发送给多少个收件hQ该参数的缺省gؓ1000?br />
4Q?推迟投递控?br />
通过defer_transports参数Q我们可以推q投递该参数指定的邮件直到postfix明确的提出投递要求。下面我们看一个例子:

有一个小型的局域网Q用户都邮件发送给局域网内部的一台postfix邮g服务器,然后通过在该服务器上拨号邮件发送出厅R这时我们可以这h定该参数的|

defer_transports = smtp

该语句表Cpostfix推迟投递所有的邮g直到执行sendmail -q命oQ这h们就可以在ppp的脚本中加上sendmail -qQ以便在拨号成功后让postfix开始投递邮件?


强强 2011-12-11 19:36 发表评论
]]>
Sendmail 8.9.3中的Mail Relay规则?/title><link>http://www.tkk7.com/lyjjq/articles/311322.html</link><dc:creator>强强</dc:creator><author>强强</author><pubDate>Sat, 30 Jan 2010 05:24:00 GMT</pubDate><guid>http://www.tkk7.com/lyjjq/articles/311322.html</guid><wfw:comment>http://www.tkk7.com/lyjjq/comments/311322.html</wfw:comment><comments>http://www.tkk7.com/lyjjq/articles/311322.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/lyjjq/comments/commentRss/311322.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/lyjjq/services/trackbacks/311322.html</trackback:ping><description><![CDATA[<p class="m_l_cont_note1_r"> </p> <div id="88au8em" class="m_l_cont_text"> <p> <p><strong>一.什么是W三方的Mail Relay?  <br /> </strong>当一台邮件服务器处理一邮件时Q该邮件的发送?the sender)和接收?the recipient)都不是本地用Plocal user),卛_送者和接收者都处于本地域之外,该邮件服务器对于q封邮g的传送完全属于不相关的第三方Q因此Mail Relay被sedmail默认止了。这L了Spammer利用你的服务器发送垃N件?nbsp; <br /> <strong>?Z么你要停止第三方的Mail Relay?  <br /> </strong>如果你的邮g服务器不能有效地控制W三方的mail relayQ你应该立刻着手解册个问题,不要{待spammer 来攻M的邮件主机,主要是因为:  <br /> a.大量的垃NӞjunk emailQ可能会使你的邮件系l崩溃。它们占用你的磁盘空_CPU资源Q还可能引发DoscddQdenial of  service attack).  <br /> b.你的l织可能被列入黑名单Qbacklist)。由于大量垃N件从你的L发出Q其它一些组l或公司可能会不做Q何更q调查更改设|阻止了从你的主机来的Q何邮Ӟq也同旉止从你的站点发到它们的所有正常的商业性邮?损失不可估量.  <br /> c.意识到这U攻d会发生在你n上。不要因为它没有发生意味着你是安全的。他们每天正用一些自动扫描的工具L描网l而寻N些对他们打开relay功能的邮件主机。他们可能自己写了某个程序正每刻地进行扫描,如果你的邮gL是易受攻ȝQ那么扫描到你就是迟早的事情?nbsp; <br /> <strong>    ? Sendmail(8.9.3)如何relay你的邮gQ?nbsp; <br /> </strong>      如果发送者和接收者都不属于本地域Qsendmail默认禁止mail relay. 要想使得sendmail relay  <br /> 你的邮gQ可以有下面两种途径Q你必须保发送者或者接收者其中至有一个属于本地域.  <br /> a. 本地发送者到外部接收?local sender to external recipient)  <br /> b. 外部发送者到本地接收?external sender to local recipient)  <br /> ==========  <br /> c. 何ؓ本地发送者(local sender)?  <br /> 当邮件服务器接收C从其它机器Q如windows pc)发来的邮件时Q它首先查连接进来的L的域名和 IP地址Q注意:  <br /> 决不是检查这邮件的信封里的发送者地址Qnot based on the envelope MAIL FROM address!)  <br /> (要了解一邮件的全部信封头信息,参考(http://www.stopspam.org/email/headers/headers.htmlQ?  <br /> 如果你是拨号用户QIP地址当然是你拨到ISP所得到的动态IP地址Q然后你的主机名/域名是由你的ISP对你的IP  <br /> 地址作反向DNS解析出来的主机名/域名Q?nbsp; <br /> 不过大多数ISP不作q个Q因此,sendmail仅仅记录你q接q来的IP地址Q由此判断是否这个地址被允许relay mail.对sendmail  <br /> 8.9.3来说Q最通常的用来检查是否relay邮g的配|文件是/etc/mail/relay-domains,它能对IP地址或域名进行判断是否允许relay.  <br /> 如果q一步不允许Q再?etc/mail/accessQ它能被通过加FEATURE(access_db)?mc文g再用m4生成/etc/sendmail.cf所Ȁz?nbsp; <br /> ?本文讨论的所有设|都是基于M4宏命令生成的/etc/sendmail.cfQ?nbsp; <br /> d. 何ؓ本地接收者(local recipient Q?  <br /> 军_接收者邮件地址是否为本地的不是件轻杄事情Qsendmail认ؓcw中的所有主?域ؓ本地接收者,也就?etc/mail/sendmail.cw文g或?etc/sendmail.cf中的Cwcd义后面列出的所有主机或域名。ؓ了激zd/etc/mail/sendmail.cw的检?使用ҎFeature(use_cw_file)。但是这q不够,因ؓq个能被愚弄的,?  <br /> 因此sendmail用规则集(ruleset)先移走这个地址的本地部?  <br /> @local.site)后,如果仍有一些域Q则考虑是否能通过relay查,另外Qsendmail也还?etc/mail/access  <br /> 军_是否有项目匹配接收者地址所在的域,Ҏ相应标记定是否被允许接收?nbsp; </p> <p><strong>? Sendmail 8.9.3: anti-relayingQ拒l传递)怎么工作Q?<br /> </strong>a. 如果Mail From:行有下面的参敎ͼsendmail拒绝mail relay: <br /> 1.发送者的域名不能被解析。这个能用FEATURE(accept_unresolvable_domains)被禁止?nbsp; <br /> 2.非全U的域名。能被用FEATURE(accept_unresolvable_domains)止?nbsp; <br /> 3.与access mapQ?nbsp;/etc/mail/accessQ中的一匹配?<br /> 域名Q如spammer.domain  reject <br /> 全称email地址Q如spammer@domain reject <br /> 邮g地址的用户名部分Q如spammer@  reject <br /> 或者不?reject'?error code error text' <br /> spammer.domain "501 No e-mail from this domain." <br /> spammer@domain "501 No e-mail from your address." <br /> spammer@ "501 Get a real address." <br /> 甚至用DISCARD Q接收ƈ安静地删除掉Q让发送者感觉象被接Ӟ <br /> b.查接收者?<br /> 用FEATURE(blacklist_recipients)允许指定access map中不应该接收email的用戗?<br /> 如: <br /> badlocaluser 550 Mailbox disabled for this username <br /> host.mydomain 550 That host does not accept mail <br /> user@otherhost.mydomain 550 Mailbox disabled for this recipient <br /> q将止发到你本地域中的用户邮g地址badlocaluse@mydomain和在L <br /> host.mydomain中的M用户和单个地址 user@otherhost.mydomain. <br /> 注:关于access map的说明: <br /> 它的默认位置?etc/mail/access. 每次更新后你必须q行 <br /> makemap hash /etc/mail/access.db < /etc/mail/access Q不需要重启用Sendmail. <br /> 它可以有以下入口Q?<br /> 1.域名 <br /> 2.email地址 <br /> 3.本地用户名部?<br /> 4.IP地址Q完整的或者子|) <br /> 和以下操作标讎ͼ <br /> 1.OK  <br /> 接收emailQ即使被其它规则拒绝?<br /> 2.RELAY  <br /> 允许通过该邮件主机relay的域。relay意味着OK <br /> 3.REJECT  <br /> 拒绝emailq显C内部通用的错误提C?<br /> 4.DISCARD  <br /> 安静地接攉后取消掉q封邮g <br /> 5.XYZ some other text <br /> XYZ?nbsp;RFC 821兼容的错误代码后面跟上一D自定义的错误信?<br /> <strong>?常见的两U检查规?<br /> </strong><br /> 1. check_relay 规则Q发送者检查)Q?<br /> 查主机名和IP地址Q当无论什么时候,一台客户通过(E)SMTPq到邮g服务器时该规则被调用?nbsp;  <br /> 2. check_rcpt 规则Q接收者检查)Q?<br /> 用于RCPT命o(用来止未被授权的relay).该规则禁止了所有的已知的relay诡计?<br /> 你能#tail -f /var/log/maillog查是否某个邮件被q用了上q规则?<br /> <strong>? Why "550 Relaying Denied"?  <br /> </strong><br /> 如果你从你自q邮g服务器得C一个错误说"550 Relaying Denied"Q你需要弄清楚Z么,甚至可能你认决不应该发生Q但是你可能忽略了某些细节,看上L应该被RelayQ但实际上不。看下面的几个例子: <br /> 1.正确的DNS数据  <br /> QAA02454: ... we do not relay <br /> QAA02454: ruleset=check_rcpt, arg1=, <br /> relay=170-51-209.ipt.aol.com [152.170.51.209], reject=550 <br /> ... we do not relay <br /> QAA02454: from=, size=0, class=0, pri=0, nrcpts=0, <br /> proto=SMTP, relay=170-51-209.ipt.aol.com [152.170.51.209] <br /> q里Q主机名?70-51-209.ipt.aol.com的机器IP地址?52.170.51.209 试着交付一邮件给Q然而,q个被拒l了Q因为接收者不是本地接收者ƈ且发送者的机器170-51-209.ipt.aol.comQ?52.170.51.209Q也不是本地发送者?<br /> 2.错误的DNS数据  <br /> QAA02454: ... Relaying denied <br /> QAA02454: ruleset=check_rcpt, arg1=, relay=[134.245.85.93], <br /> reject=550 ... Relaying denied <br /> QAA02454: from=, size=0, class=0, pri=0, nrcpts=0, <br /> proto=SMTP, relay=[134.245.85.93] <br /> q个其实与上面的情况相同Q对于IP地址134.245.85.93没有PTR记录被找刎ͼ关于q一Ҏ个问题就是:万一你的邮gL的relay功能仅仅是基于主?域名q行查是否ؓ本地发送者,(e.g., FEATURE(relay_entire_domain)Q那L话,如果该IP地址是属于你的本地域之内Q仍被你拒lrelay.解决办法是ؓq个IP地址加PTR记录Q也是反向DNS解析Q或者添加到/etc/hosts文g中,再或者添加该IP地址到access map 中去Q?etc/mail/accessQ?<br /> 3.不一致的DNS数据 <br /> QAA02454: ... Relaying denied <br /> QAA02454: ruleset=check_rcpt, arg1=, <br /> relay=some.domain [10.0.0.1] (may be forged), <br /> reject=550 ... Relaying denied <br /> QAA02454: from=, size=0, class=0, pri=0, nrcpts=0, <br /> proto=SMTP, relay=some.domain [10.0.0.1] (may be forged) <br /> q儿,(may be forged)是个很重要的部分Q它说明对于该主机的DNS数据是不一致的Qƈ且主机名不被用来查是否被允许relay,而仅仅检查IP地址Q因此这和第二种情况相同?<br /> <strong>? 动态Relay授权控制介:QDRACQ?<br /> </strong><br /> DRAC是一个后台程序,它动态地为Sendmail更新access map文gQ它提供一U方法,是允许合法的用户通过你的SMTP邮gLrelay mail,同时仍然L其它人用它作为Spam Relay.当用戯POP/IMAP服务器认证后其IP地址被立卛_?etc/mail/access允许mail relay.默认圎ͼ该IP地址在access map的入口在30分钟后被l止了?<br /> q种功能特别是对那些公司有用Q它们在各个地方有办事处Q外地办事处或出差在外的W记本用户通过拨入当地ISPQ且讄了发送邮件服务器为本公司的SMTP邮gL时?<br /> 一般地QSendmail所能看见的唯一可靠的信息是客户机的L/域名或IP地址Qƈ且当一个用h通过拨本地ISPq接到其本公司总部的SMTP邮g服务器时QSendmail不能分辩你的用户是spammerq是本公司合法员工,如果拨号用户有固定的IP地址/域名Q你可以配置sendmail允许他们relay mail.但是大多数情况,特别在中国,拨号用户每次得到的是不同的变化多端的IP地址Q因此你不得不告诉用户通过他们本地ISP提供的邮件主机发送邮? <br /> DRAC所用的Ҏ是叫做POP-before-SMTP, 既然POP服务器知道每一个接攉件的客户机的IP地址,q些IP地址能被攉h动态构建access map,你可能需要写一个程序来攉q些地址,象上面说的一?默认保留30分钟然后取消q些IP地址的mail relay. 一般地定期q行makemapE序更新access map. <br /> q有两种情况: <br /> 1. 拨到ISP后先收后? <br /> 2. 在发件信(outbox)中有?拨号后先发后? <br /> W一U情冉|有问?对于W二U情?需要在q到POP3信箱收信之后邮g才能被发? <br /> W一ơ发送将被拒l? <br /> W二U情况在被POP3取得认证后,随即access map被更新允许SMTP Mail Relay. </p> </div> <img src ="http://www.tkk7.com/lyjjq/aggbug/311322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/lyjjq/" target="_blank">强强</a> 2010-01-30 13:24 <a href="http://www.tkk7.com/lyjjq/articles/311322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>理 sendmail 的邮仉?/title><link>http://www.tkk7.com/lyjjq/articles/247806.html</link><dc:creator>强强</dc:creator><author>强强</author><pubDate>Mon, 22 Dec 2008 10:46:00 GMT</pubDate><guid>http://www.tkk7.com/lyjjq/articles/247806.html</guid><wfw:comment>http://www.tkk7.com/lyjjq/comments/247806.html</wfw:comment><comments>http://www.tkk7.com/lyjjq/articles/247806.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/lyjjq/comments/commentRss/247806.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/lyjjq/services/trackbacks/247806.html</trackback:ping><description><![CDATA[<p>邮g队列是存?<span id="ggkwck4" class="bold">sendmail</span> 命o传送的邮g消息数据和控制文件的目录。缺省情况下Q邮仉列是 <span id="c86m4um" class="bold">/var/spool/mqueue</span>?/p> <p>邮g消息可能׃很多原因而排入队列?/p> <p>例如Q?/p> <ol type="1"> <li><span id="68ac4aq" class="bold">sendmail</span> 命o可以配置成按一定的旉间隔处理队列Q而不是立卛_理。如果这P邮g消息必须临时存储? <li>如果一个远E主Z响应一个邮件连接的hQ邮件系l会这些消息排入队列,E后再作试?/li> </ol> <a id="idx86" name="idx86"></a><a id="idx87" name="idx87"></a><a id="idx88" name="idx88"></a><a id="idx89" name="idx89"></a><a name="a2a5b395879joyc"></a> <h3 id="a2a5b395879joyc">打印邮g队列</h3> <p>队列内容可以使用 <span id="4qs4uya" class="bold">mailq</span> 命o打印Q或通过指定 <span id="444wckm" class="bold">sendmail</span> 命o?<span id="awyo8o4" class="bold">-bp</span> 标志Q?/p> <p>q些命o产生队列标识、消息大、消息进入队列的日期以及发送方与收件h的列表?/p> <a id="idx90" name="idx90"></a><a name="a213x995e2"></a> <h3 id="a213x995e2">邮g队列文g</h3> <p>队列中的每条消息都与一定数量的文g相关联。这些文件按以下U定命名Q?/p> <p> </p> <pre class="xmp"><span id="c4w8yw4" class="italic">Type</span>f<span id="s8wmagy" class="italic">ID</span></pre> <p>其中 <span id="8asesio" class="italic">ID</span> 是一个唯一的消息队列标识,?<span id="4eqs44u" class="italic">Type</span> 是以下表C文件类型的字母中的一个:</p> <a name="wq55"></a> <table id="wq55" rules="none" width="100%" summary="" border="0" frame="void"> <tbody valign="top"> <tr> <td width="5%"><a id="a213x995e7" name="a213x995e7"></a><span id="4ga4cai" class="bold">d</span></td> <td width="95%">包含消息正文但无标题信息的数据文件?/td> </tr> <tr> <td><a id="a213x995ea" name="a213x995ea"></a><span id="6uw4gwe" class="bold">q</span></td> <td>队列控制文g。该文g包含处理作业所需要的信息?/td> </tr> <tr> <td><a id="a213x995eb" name="a213x995eb"></a><span id="okw4qee" class="bold">t</span></td> <td>临时文g。该文g?<span id="844iuc8" class="bold">q</span> 文g重徏时的一个映象。它快速重命名?<span id="qcgmqgo" class="bold">q</span> 文g?/td> </tr> <tr> <td><a id="a213x995ec" name="a213x995ec"></a><span id="measeuo" class="bold">x</span></td> <td>在会话过E中存在q显Cơ会话中发生的Q何事件的记录文g?/td> </tr> </tbody> </table> <p>例如Q如果一条消息的队列标识?AA00269Q当 <span id="wqk8u4o" class="bold">sendmail</span> 命o试传送消息时Q在邮g队列目录中创建和删除以下文gQ?/p> <a name="wq56"></a> <table id="wq56" rules="none" width="100%" summary="" border="0" frame="void"> <tbody valign="top"> <tr> <td width="15%"><a id="a213x995ee" name="a213x995ee"></a><span id="44au8ik" class="bold">dfAA00269</span></td> <td width="85%">数据文g</td> </tr> <tr> <td><a id="a213x995f1" name="a213x995f1"></a><span id="gqcwyy8" class="bold">qfAA00269</span></td> <td>控制文g</td> </tr> <tr> <td><a id="a213x995f2" name="a213x995f2"></a><span id="oqs44iy" class="bold">tfAA00269</span></td> <td>临时文g</td> </tr> <tr> <td><a id="a213x995f3" name="a213x995f3"></a><span id="cmgauki" class="bold">xfAA00269</span></td> <td>记录文g</td> </tr> </tbody> </table> <a name="bae2a45286dada"></a> <h4 id="bae2a45286dada">q 控制文g</h4> <p><a id="idx91" name="idx91"></a></p> <p><span id="gi8uo4y" class="bold">q</span> 控制文g包括一pd行,每一行都以一个代码字母开始:</p> <a name="wq57"></a> <table id="wq57" rules="none" width="100%" summary="" border="0" frame="void"> <tbody valign="top"> <tr> <td width="5%"><a id="a2a5b396529joyc" name="a2a5b396529joyc"></a><span id="8oke4si" class="bold">B</span></td> <td width="95%">指定 <tt>body type</tt>。该行其余部分是定义 <tt>body type</tt> 的文本字W串。如果缺p字D,则缺省情况下 <tt>body type</tt> ?7 位的Q而且不会试Ҏ的处理。合法值是 <span id="wiaue84" class="bold">7BIT</span> ?<span id="6myac4u" class="bold">8BITMIME</span>?/td> </tr> <tr> <td><a id="a2a5b396555joyc" name="a2a5b396555joyc"></a><span id="84eqsuk" class="bold">C</span></td> <td>包括控制用户。对于以文g或程序作收g人的地址Q?span class="bold">sendmail</span> 作ؓ该文件或E序的所有者来执行传送。控制用戯讄为文件或E序的所有者。由 <span id="sce8w4q" class="bold">.forward</span> ?<span id="sc8gqsi" class="bold">:include:</span> 文gd的收件h地址也将使控制用戯讄为文件所有者。当 <span id="g88k4k4" class="bold">sendmail</span> 传送邮件到q些收g人时Qsendmail 作ؓ控制用户传送,然后转换?root 用户?/td> </tr> <tr> <td><a id="a2a5b396581joyc" name="a2a5b396581joyc"></a><span id="a84gskq" class="bold">F</span></td> <td>包括信包标志。标志是以下的Q意组合:<span id="aic84us" class="bold">w</span>Q设|?<span id="a88kmmk" class="bold">EF_WARNING</span> 标志Q?span class="bold">r</span>Q设|?<span id="ga8egw4" class="bold">EF_RESPONSE</span> 标志Q?span class="bold">8</span>Q设|?<span id="auegai8" class="bold">EF_HAS8BIT</span> 标志Q和 <span id="84ey8m4" class="bold">b</span>Q设|?<span id="seoq8go" class="bold">EF_DELETE_BCC</span> 标志Q。其它字母则被忽略而无提示?/td> </tr> <tr> <td><a id="a213x995f7" name="a213x995f7"></a><span id="sk4o4wk" class="bold">H</span></td> <td>包括一个标题定义。此c行的数量Q意?span class="bold">H</span> 行出现的序定了它们在最l消息里的出现顺序。这些行使用的语法与 <span id="m8444ym" class="bold">/etc/mail/sendmail.cf</span> 配置文g中的标题定义相同。(对于早于 AIX 5.1 的版本,该文件是 <span id="88c8wuc" class="bold">/etc/sendmail.cf</span>。)</td> </tr> <tr> <td><a id="a2a5b396609joyc" name="a2a5b396609joyc"></a><span id="888w44o" class="bold">I</span></td> <td>?<span id="m4oikki" class="bold">df</span> 文g指定内节点和讑֤信息Q这可以在磁盘崩溃后用来恢复邮g队列?/td> </tr> <tr> <td><a id="a2a5b396635joyc" name="a2a5b396635joyc"></a><span id="suw8omc" class="bold">K</span></td> <td>指定上一ơ传输尝试的旉Q以Uؓ单位Q?/td> </tr> <tr> <td><a id="a213x995f8" name="a213x995f8"></a><span id="aa8w484" class="bold">M</span></td> <td>当一条消息由于在传送尝试中出现了错误而放入队列时Q错误的性质存储在 <span id="eoq84io" class="bold">M</span> 行?/td> </tr> <tr> <td><a id="a2a5b396660joyc" name="a2a5b396660joyc"></a><span id="oequw84" class="bold">N</span></td> <td>指定传送尝试的L?/td> </tr> <tr> <td><a id="a2a5b396688joyc" name="a2a5b396688joyc"></a><span id="w4y44y4" class="bold">O</span></td> <td>指定 ESMTP 的消息传输系l(MTSQ的原始倹{它只用于传送状态通知?/td> </tr> <tr> <td><a id="a213x995f9" name="a213x995f9"></a><span id="s84y44a" class="bold">P</span></td> <td>包括当前消息的优先。优先用来寚w列排序。数字越大表CZ先񔭑低。当消息位于队列中时优先U增加。初始优先取决于消息的cd消息的大?/td> </tr> <tr> <td><a id="a2a5b396714joyc" name="a2a5b396714joyc"></a><span id="88i44oe" class="bold">Q</span></td> <td>包含初始收g人,?ESMTP 事务中的 <tt>ORCPT=</tt> 字段指定。仅用于传送状态通知。只应用于紧接着?<span id="8c4osai" class="bold">R</span> 行?/td> </tr> <tr> <td><a id="a213x995fa" name="a213x995fa"></a><span id="8u44qom" class="bold">R</span></td> <td>包含收g人地址。每个收件h占一行?/td> </tr> <tr> <td><a id="a213x995fb" name="a213x995fb"></a><span id="4i6ic44" class="bold">S</span></td> <td>包含发送方地址。此c行只有一行?/td> </tr> <tr> <td><a id="a213x995fc" name="a213x995fc"></a><span id="6ua4aio" class="bold">T</span></td> <td>包含消息创徏旉Q用来计何时消息超时?/td> </tr> <tr> <td><a id="a2a5b396739joyc" name="a2a5b396739joyc"></a><span id="o8smy4c" class="bold">V</span></td> <td>指定队列文g格式版本P该队列文件格式用来允许新?<span id="64444ym" class="bold">sendmail</span> 二进制文件读取旧版本创徏的队列文Ӟ。缺省时指版?<span id="qy8ac4y" class="bold">0</span>。如果存在,必须是文件的W一行?/td> </tr> <tr> <td><a id="a2a5b396764joyc" name="a2a5b396764joyc"></a><span id="uuy8q4c" class="bold">Z</span></td> <td>指定原始信包标识Q从 ESMTP 事务中)。只用于传送状态通知?/td> </tr> <tr> <td><a id="a2a5b396790joyc" name="a2a5b396790joyc"></a><span id="kaseq84" class="bold">$</span></td> <td>包含宏定义。某些宏Q?span class="bold">$r</span> ?<span id="iiiuoyg" class="bold">$s</span>Q的g传递到队列q行阶段?/td> </tr> </tbody> </table> <p>传送到 <tt>amy@zeus</tt> 的消息的 <span id="o84c4k4" class="bold">q</span> 文gcM于:</p> <p> </p> <pre class="xmp">P217031 T566755281 MDeferred: Connection timed out during user open with zeus Ramy@zeus H?P?return-path: <geo> Hreceived: by george (0.13 (NL support)/0.01) id AA00269; Thu, 17 Dec 87 10:01:21 CST H?D?date: Thu, 17 Dec 87 10:01:21 CST H?F?From: geo Hmessage-id: <8712171601.AA00269@george> HTo: amy@zeus Hsubject: test</pre> <p>其中Q?/p> <a name="wq58"></a> <table id="wq58" rules="none" width="100%" summary="" border="0" frame="void"> <tbody valign="top"> <tr> <td width="50%"><a id="a2a5b397078joyc" name="a2a5b397078joyc"></a><tt>P217031</tt></td> <td width="50%">消息的优先</td> </tr> <tr> <td><a id="a2a5b397103joyc" name="a2a5b397103joyc"></a><tt>T566755281</tt></td> <td>提交旉Q秒Q?/td> </tr> <tr> <td><a id="a2a5b397129joyc" name="a2a5b397129joyc"></a><tt>MDeferred: Connection timed out during user open with zeus</tt></td> <td>状态消?/td> </tr> <tr> <td><a id="a2a5b397152joyc" name="a2a5b397152joyc"></a><tt>Sgeo</tt></td> <td>发送方标识</td> </tr> <tr> <td><a id="a2a5b397176joyc" name="a2a5b397176joyc"></a><tt>Ramy@zeus</tt></td> <td>收g人标?/td> </tr> <tr> <td><a id="a2a5b397206joyc" name="a2a5b397206joyc"></a><tt>H<span>lines</span></tt></td> <td>消息的报头信?/td> </tr> </tbody> </table> <a name="a213x995d9"></a> <h3 id="a213x995d9">?sendmail 中指定时间?/h3> <p><a id="idx92" name="idx92"></a></p> <p>要设|消息超时和队列处理间隔Q必ȝ特定的时间值格式。时间值的格式是:</p> <p> </p> <pre class="xmp">-q<span id="8wmgaag" class="italic">NumberUnit</span></pre> <p>其中 <span id="84u44eu" class="italic">Number</span> 是一个整数|<span id="a4gi4gw" class="italic">Unit</span> 是单位字母?span class="italic">Unit</span> 可以是以下g的一个:</p> <a name="wq59"></a> <table id="wq59" rules="none" width="100%" summary="" border="0" frame="void"> <tbody valign="top"> <tr> <td width="5%"><a id="a213x995db" name="a213x995db"></a><span id="gw4iuaq" class="bold">s</span></td> <td width="95%">U?/td> </tr> <tr> <td><a id="a213x995dc" name="a213x995dc"></a><span id="8io4gwm" class="bold">m</span></td> <td>?/td> </tr> <tr> <td><a id="a213x995dd" name="a213x995dd"></a><span id="g444ks4" class="bold">h</span></td> <td>时</td> </tr> <tr> <td><a id="a213x995de" name="a213x995de"></a><span id="ya8m8sy" class="bold">d</span></td> <td>?/td> </tr> <tr> <td><a id="a213x995df" name="a213x995df"></a><span id="4ugim4w" class="bold">w</span></td> <td>?/td> </tr> </tbody> </table> <p>如果没有指定 <span id="iy844s4" class="italic">Unit</span>Q?span class="bold">sendmail</span> 守护E序使用分(<span id="ki8m4ki" class="bold">m</span>Q作为缺省倹{下面三个示例说明时间值的规范Q?/p> <p> </p> <pre class="xmp">/usr/sbin/sendmail -q15d</pre> <p>该命令?<span id="q84wqwu" class="bold">sendmail</span> 守护E序?15 天处理一ơ队列?/p> <p> </p> <pre class="xmp">/usr/sbin/sendmail -q15h</pre> <p>该命令?<span id="mu4cgmc" class="bold">sendmail</span> 守护E序?15 时处理一ơ队列?/p> <p> </p> <pre class="xmp">/usr/sbin/sendmail -q15</pre> <p>该命令?<span id="4sey8om" class="bold">sendmail</span> 守护E序?15 分钟处理一ơ队列?/p> <a name="a213x99614"></a> <h3 id="a213x99614">强制邮g队列</h3> <p><a id="idx93" name="idx93"></a></p> <p>在某些情况下Q您可能发现队列׃某种原因d。您可以使用 <span id="448ew4a" class="bold">-q</span> 标志Q没有|强制一个队列运行。您也可以用 <span id="8oikwsi" class="bold">-v</span> 标志Q详l)来观察发生了什么:</p> <p> </p> <pre class="xmp">/usr/sbin/sendmail -q -v</pre> <p>使用一个队列修饰符Q您也可以将作业限制在具有特定队列标识符、发送方或收件h的范围中。例如,<span id="saysu8u" class="bold">-qRsally</span> 队列运行限制ؓ收g人地址之一中有字符?<span id="4keq4ms" class="bold">sally</span> 的作业。同P<span id="g8g4aq4" class="bold">-qS</span><span id="gekeg8o" class="italic"> 字符?/span>会将q行限制为特定的发送方Q?<span id="kiueigw" class="bold">-qI</span><span id="wse8qwc" class="italic"> 字符?/span>它限制为特定的队列标识?/p> <a name="a213x995cc"></a> <h3 id="a213x995cc">讄队列处理旉间隔</h3> <a id="idx94" name="idx94"></a> <p>守护E序启动?<span id="sikcyeu" class="bold">-q</span> 标志的值确?<span id="i8kco4u" class="bold">sendmail </span>守护E序处理邮g队列的时间间隔?/p> <p><span id="sy8smck" class="bold">sendmail</span> 守护E序通常?<span id="sgkw8k4" class="bold">/etc/rc.tcpip</span> 文g在系l启动时启动?span class="bold">/etc/rc.tcpip</span> 文g包含一个称为队列处理间隔(QPIQ的变量Q该变量在该文g启动 <span id="8icm44q" class="bold">sendmail</span> 守护E序时用来指?<span id="gwmgi4c" class="bold">-q</span> 标志的倹{缺省情况下Q?span class="bold">qpi</span> 的值是 30 分钟。要指定不同的队列处理间隔:</p> <ol type="1"> <li>用您喜欢的编辑器~辑 <span id="kqkoiyw" class="bold">/etc/rc.tcpip</span> 文g? <li>查找l?<span id="44444wu" class="italic">qpi</span> 变量指定值的行,例如Q? <p> </p> <pre class="xmp">qpi=30m</pre> <li>指定给变量 <span id="eeqs4gu" class="italic">qpi</span> 的值更改ؓ希望的时间倹{?/li> </ol> <p>q些变化会在下一ơ系l重新启动时生效。如果您惌q些变化立刻生效Q请停止q新启?<span id="y4g44o4" class="bold">sendmail</span> 守护E序Q指定新?<span id="m4icwek" class="bold">-q</span> 标志倹{更多相关信息,请参?a >停止 sendmail 守护E序</a>?a >启动 sendmail 守护E序</a>?/p> <a name="a213x99608"></a> <h3 id="a213x99608">Ud邮g队列</h3> <p><a id="idx95" name="idx95"></a></p> <p>当一个主机长期关闭时Q\由到Q或通过Q该L的很多消息可能存储在邮g队列中。结?<span id="88444q4" class="bold">sendmail</span> 命o要花费很长时间对队列排序Q这严重降低了系l性能。如果您Ud队列C个时空间ƈ创徏一个新的队列,旧队列可以稍后在该主机恢复服务后q行。要Ud队列C个时空间ƈ创徏一个新的队列,P</p> <ol type="1"> <li>?a >停止 sendmail 守护E序</a>中的指示信息停止 <span id="wmg8sqy" class="bold">sendmail</span> 守护E序? <li>输入以下内容Ud整个队列目录Q? <p> </p> <pre class="xmp">cd /var/spool mv mqueue omqueue</pre> <li>?a >启动 sendmail 守护E序</a>中的指示信息重新启动 <span id="iqueqgo" class="bold">sendmail</span> 守护E序? <li>输入以下内容处理旧邮仉列: <p> </p> <pre class="xmp">/usr/sbin/sendmail -oQ/var/spool/omqueue -q</pre> <p class="indatacontent"><span id="844k8qq" class="bold">-oQ</span> 标志指定一个备用队列目录?span class="bold"> -q</span> 标志指定q行队列中的每一作业。要获取操作q程的报告,请?<span id="aqcea84" class="bold">-v</span> 标志?/p> <a name="wq62"></a> <div id="y4ikuks" class="notetitle" id="wq62">?</div> <div id="as4eq4y" class="notebody">此操作可能要׃旉?/div> <li>当队列ؓI时Q输入以下内定wL志文件和临时目录Q? <p> </p> <pre class="xmp">rm /var/spool/omqueue/* rmdir /var/spool/omqueue</pre> </li> </ol> <a id="idx96" name="idx96"></a><a id="idx97" name="idx97"></a><a name="c15fd1b790atla"></a> <h3 id="c15fd1b790atla">启动 sendmail 守护E序</h3> <p>要启?<span id="448keck" class="bold">sendmail</span> 守护E序Q请输入以下命o中的一个:</p> <p> </p> <pre class="xmp">startsrc -s sendmail -a "-bd -q15"</pre> <p> </p> <pre class="xmp">/usr/lib/sendmail -bd -q15</pre> <p>如果 <span id="eoi444m" class="bold">sendmail</span> 守护E序在输入这些命令中的一个时已经Ȁz,请参阅屏q上的以下消息:</p> <p> </p> <pre class="xmp">sendmail 子系l已l激zR不支持多实例?/pre> <p>如果 <span id="mc4yai4" class="bold">sendmail</span> 守护E序没有被激z,您将会看C条消息表C?<span id="848mock" class="bold">0sendmail</span> 守护E序已经启动?/p> <a id="idx98" name="idx98"></a><a id="idx99" name="idx99"></a><a name="a2a5b399043joyc"></a> <h3 id="a2a5b399043joyc">停止 sendmail 守护E序</h3> <p>要停?<span id="csmo844" class="bold">sendmail</span> 守护E序Q请q行 <span id="884c4qo" class="bold">stopsrc -s sendmail</span> 命o?/p> <p>如果 <span id="884uwec" class="bold">sendmail</span> 守护E序没有?<span id="g4ey4em" class="bold">startsrc</span> 命o启动Q请Q?/p> <ul> <li>查找 <span id="uawqc84" class="bold">sendmail</span> q程标识? <li>输入 <span id="mc8w4mu" class="bold">kill</span> <span id="agamo6g" class="italic">sendmail_pid</span> 命o。(其中 <span id="e4wiksi" class="italic">sendmail_pid</span> ?<span id="q44ys44" class="bold">sendmail</span> q程的处理标识)?/li> </ul> <img src ="http://www.tkk7.com/lyjjq/aggbug/247806.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/lyjjq/" target="_blank">强强</a> 2008-12-22 18:46 <a href="http://www.tkk7.com/lyjjq/articles/247806.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>配置Sendmailhttp://www.tkk7.com/lyjjq/articles/154028.html强强强强Thu, 18 Oct 2007 15:26:00 GMThttp://www.tkk7.com/lyjjq/articles/154028.htmlhttp://www.tkk7.com/lyjjq/comments/154028.htmlhttp://www.tkk7.com/lyjjq/articles/154028.html#Feedback0http://www.tkk7.com/lyjjq/comments/commentRss/154028.htmlhttp://www.tkk7.com/lyjjq/services/trackbacks/154028.html 

要生成sendmail.cf文g

一般是~译sendmail.mc来生成sendmail.cf,q样的好处是通过~译Q会查看Z些sendmail的设|错误和漏洞?

# cd /etc/mail
# vi sendmail.mc

(1)扑ֈQ?

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

打开注解Q启用相应的认证机制Q主要是Z支持Outlook?

(2)扑ֈQ?

DAEMON_OPTIONS(`Port=25, Name=MSA,M=Ea')dnl q样sendmail在25端口q行强制w䆾认证
dnl DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
dnl DAEMON_OPTIONS(`Port=587, Name=MSA,M=a')dnl

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

打开注解Q启用相应的认证机制Q主要是Z支持Outlook?

(3)?2)后添加两行:



讄MTA和MSA端口?

(4)扑ֈQ?

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

该行注释掉Q以允许通过|络q接Sendmail?

(5)扑ֈQ?

dnl FEATURE(`accept_unresolvable_domains')

止不可解析域名的{发邮件?

最后保存退出?

~译sendmail.mc生成sendmail.cf文g

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# /etc/rc.d/init.d/sendmail restart --重vsendmail服务?

如果在执行m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 报错的话Q那么检查是否安装sendmail-cf.*.rpm是否安装Q?

# rpm -qa | grep sendmail-cf

如果没有安装Q则需要在安装光盘中找到sendmail-cf包,q安装:

# rpm -ivh sendmail-cf*.rpm

编译结?/h2>

1、检SASL被编译到sendmail中?

#/usr/sbin/sendmail -d0.1 -bv root |grep SASL

输出cM如下Q?

NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS

保证你看到SASL是正确的?

2、检?5端口Q?

# telnet localhost 25

Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 fyhtest.163.net ESMTP Sendmail 8.12.5/8.12.5; Thu, 10 Apr 2003 16:35:42 -0400 ehlo test 250-fyhtest.163.net Hello localhost [127.0.0.1], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-DELIVERBY 250 HELP
quit ---退?

只要输出有LOGIN PLAIN可以了?

到这里,sendmail配|完了,你可以添加一个用戯行测试:

#useradd test
#passwd test 讄密码

把你服务器的域名d?etc/mail/local-host-names中?

其他讄

要想更好的用sendmailQ常用到的一些设|:

1、限制最大邮件?

# vi /etc/mail/sendmail.cf
# maximum message size
MaxMessageSize=5000000 (注:5M)

2、最大的发数目?

# vi /etc/mail/sendmail.cf
# maximum number of recipients per SMTP envelope
MaxRecipientsPerMessage=20 Q注Q?0个)

3、域名文?---local-host-name 可以用他来实现虚拟域名或多域名支持?

# vi /etc/mail/local-host-name
test.com
test1.com

4、mail别名文g--aliases?

# vi /etc/aliases
pȝ内部别名Qdiscuz:bbsadmin
discuz是我的用户名Q其他的是别名,用逗号隔开?
转发到其他的邮箱Qdiscuz:bbsadmin@discuz.com
# newaliases --写到库中

5、邮件控制文?

relay、ok、reject和discard?

relay: 可以实现转发?

ok: 是用来允许用LL讉KQ它会覆盖Q何其它已建立的检查(实际讄中,最好不要设,除非你对该用hl对信Q的)Q?

reject: 可以实现Ҏ访地址的拒l,它根本就不容许该地址与你的邮件服务器q行q接通信Q?

discard: 的作用是在接收到传输的邮件消息后Q把它丢弃掉。在发送者看来,他的邮g的确是接收了Q但他ƈ不知道,发送的目的地址Ҏ不可能接收到他的邮gQ服务器巧妙地欺骗了他?

# vi /etc/mail/access

localhost.localdomain RELAY ---允许 localhost RELAY 127.0.0.1 RELAY peng@sina.com ok @sexgirl.net reject 211.77.22.45 discard
# makemap hash /etc/mail/access.db < /etc/mail/access --写到库中

6、Sendmail环境下的防止邮grelay  
?.9版本开始,~省的是不允讔R件{?mail relay)的。最单的允许邮g转发的方法是在文?etc/mail/relay-domains中进行设|。该文g中列出的域名内的信g都允讔R过本地服务器进行邮件{发?nbsp;
Z更精的讄Q可以在sendmail.mc中添加如下几个参数允许被用来讄邮g转发Q?nbsp;
· FEATURE(relay_hosts_only). 通常情况下,在文?etc/mail/relay-domains中列出的域名的主机都允许通过本地{发,而该讄指示指定必须|列出每个允讔R过本机转发邮g的主机?nbsp;
· FEATURE(relay_entire_domain). 该参数指C允许所有本地域通过本机q行邮g转发?nbsp;
· FEATURE(access_db). 该参数指定利用哈希数据库/etc/mail/access来决定是否允许某个主机通过本地q行邮g转发?nbsp;
· FEATURE(blacklist_recipients).若该参数被设|,则在军_是否允许某个L转发邮g时同时察看邮件发送着地址和邮件接受者地址?nbsp;
· FEATURE(rbl).允许Zmaps.vix.com由黑名单(Realtime Blackhole List)q行邮g拒绝Q以防范垃圾邮g?nbsp;
· FEATURE(accept_unqualified_senders).允许接受发送者地址不包括域名的邮gQ例如userQ而不是user@B.NET?nbsp;
· FEATURE(accept_unresolvable_domains).通常来讲Qsendmail拒绝接受发送者邮件地址指定的主机通过DNS不能解析的邮Ӟ而该参数允许接收q种邮g?nbsp;
· FEATURE(relay_based_on_MX).该参数允许{发邮件接受者地址的MX记录指向本地的的邮gQ例如,本地接收C个发送目的地址为user@b.com的邮Ӟ而b.com域名的MX记录指向了本地机器,则本地机器就允许转发该邮件?nbsp;
下面几个Ҏ可能会有安全漏z,一般当邮g服务器位于防火墙后时才应该用,因ؓq些参数可能D你的pȝ易于被垃N件发送者利用?nbsp;
·FEATURE(relay_local_from).该参数指定若消息自称源于本地域,则允许{发该邮g?br />
            ·FEATURE(promiscuous_relay).打开Ҏ有的邮g的{发?/pre>
            

7.讄完成后outlook发送邮件要求验证时Q出现错?br />
Jan 30 14:45:57 qiuding sendmail[13908]: o0U6jvs1013908: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Jan 30 14:45:58 qiuding sendmail[13909]: o0U6jw4h013909: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Jan 30 14:47:38 qiuding sendmail[13918]: o0U6lcCc013918: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Jan 30 14:47:41 qiuding sendmail[13919]: o0U6lefW013919: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Jan 30 14:47:42 qiuding sendmail[13920]: o0U6lfoF013920: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Jan 30 14:47:43 qiuding sendmail[13921]: o0U6lgtZ013921: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Jan 30 14:47:43 qiuding sendmail[13922]: o0U6lh53013922: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
Jan 30 14:47:44 qiuding sendmail[13923]: o0U6li7I013923: [116.230.242.136] did not issue MAIL/EXPN/VRFY/ETRN during connection to MTA
大量查找资料原来?br /> 认证q程没有启动  SASLAUTHD服务一定要启动否则无法q行用户验证
etc/rc.d/init.d/saslauthd start
配置下蝲

sendmail -bd -q1h

  Sendmail的命令参数的含义如下Q?br />
  -bQ指定Sendmail在后台运行,q且监听端口25的请求?br />
  -dQ指定Sendmail以Daemon方式q行(守护q程)?br />
  -qQ当Sendmail无法邮件成功地发送到目的地时Q它会将邮g保存在队列里。该参数指定邮g在队列里保存的时间。例子里?h表示保留1时?br />
  在终端命令窗口运行以下命令来重新启动Sendmail服务Q?br />
  [root@ahpeng root]#/etc/rc.d/init.d/sendmail restart

  在终端命令窗口运行以下命令来关闭Sendmail服务Q?br />
  [root@ahpeng root]#/etc/rc.d/init.d/sendmail stop

  我们q可以在l端命oH口q行以下命o来检Sendmail服务器的q行状态:

  [root@ahpeng root]# /etc/rc.d/init.d/sendmail status

  pȝ应该昄Q?br />
  sendmail (pid 3251) 正在q行…

/etc/mail目录下操?br /> makemap hash access.db<access
killall -9 sendmail
etc/rc.d/init.d/saslauthd start
sendmail -bd -q30m


强强 2007-10-18 23:26 发表评论
]]>
վ֩ģ壺 ޲߹ۿ| avƷfc2| 2016| 鶹¹AVԭ| ɫͼУ԰ɫ| ߹ۿƵվ| avһùŴ | ۺľƷ| ëƬ߹ۿվ| AVƬվ| ޾Ʒtvþþþ| ðѾƷƵ| ޹Ʒþһ| þѿٸ߳VƬػ| ޾Ʒþþþþ| ѹۿëƬȫ| ޾Һվ| ƷѲ| ŮѾƷëƬ| Ļ˿Ʒһ| Դ߹ۿ | aëƬ| þþƷav鶹С˵ | Ƶ| ޽վƵ| ഺƵ߹ۿֱ| 鵺̳ƷƵվ| ѴƬֻ߹ۿ| APPѹۿƵ| Ƭ߹ۿ| ŮڵƵվ| һƵ| þþƷAVũ帾Ů| 99reþӾƷƵ | 91㽶߹ۿ| ˿ҳ| a vרav| 59paoɹƵ| Av뾫Ʒ| AVרӰ | þþƷAVý |