- 论坛徽章:
- 1
|
我對 ldap 沒有什麼研究,提供你幾個做法參考
方法1. 建立正向表列(sendmail.mc):
- LOCAL_CONFIG
- F{ValidUsers} -o /etc/mail/validusers
- LOCAL_RULESETS
- SLocal_check_rcpt
- R$* $: $>3 $>Parse0 $1
- R$={ValidUsers} < @ 你的域名. > $# OK
- R$* $#error $@ 5.0.0 $: "550 User Unknown"
复制代码
在 validuser 中為你的 user list, 進信時 check rcpt,是否存在 validusers 中
若不存在,則回應找不到, 所以你的工作是建立這個 validusers 表列,
裏面只是一行行的 username (不含 @左邉),用 ldap query 應該很容易產生才是
方法二:
Sendmail 不使用 GW 方式,relay (relay-domains,mailertable) 功能關掉,將 user list
及 exchange 上所有表列轉移到 /etc/aliases 中,並設定 /etc/local-host-names 收
本域的信,而利用 /etc/aliases 將信轉到後台去
以上兩種方法你要注意,若 Exchange 中有所有 "郵件列表" (如同 aliases) ,一併要轉
過來,所以你會發現,這兩種做法會有時間差,且因為你的功力問題,是否順利轉換仍可能是問題
方法三:
直接在 /etc/aliases 或 mailertable中使用 ldap 功能,將 ldap server 指向後台
的 windows 機器,不過這個東西有一定的 LDAP LDIF entry 格式, 且受 sendmail 版本影響(不同
的版本支援度不同,請以 www.sendmail.org 中的 change log 說明為準,
詳細設法我不懂,你可以努力看懂 sendmail 中 cf/README 的說明,我舉個例來說(mailertable):
- Kmailertable ldap -k (&(objectClass=sendmailMTAMapObject)
- (sendmailMTAMapName=mailer)
- (|(sendmailMTACluster=${sendmailMTACluster})
- (sendmailMTAHost=$j))
- (sendmailMTAKey=%0))
- -1 -v sendmailMTAMapValue,sendmailMTAMapSearch:FILTER:sendmailMTAMapObject,sendmailMTAMapURL:URL:sendmailMTAMapObject
复制代码
其 LDIF 為:
- dn: sendmailMTAMapName=mailer, dc=sendmail, dc=org
- objectClass: sendmailMTA
- objectClass: sendmailMTAMap
- sendmailMTACluster: Servers
- sendmailMTAMapName: mailer
- dn: sendmailMTAKey=example.com, sendmailMTAMapName=mailer, dc=sendmail,dc=org
- objectClass: sendmailMTA
- objectClass: sendmailMTAMap
- objectClass: sendmailMTAMapObject
- sendmailMTAMapName: mailer
- sendmailMTACluster: Servers
- sendmailMTAKey: example.com
- sendmailMTAMapValue: relay:[smtp.example.com]
复制代码
你可以多看看 cf/REAME 所寫,這種問題我幾乎可以肯定沒有中文資料, README 寫得很清楚
而經驗則多是靠實驗得來的
方法四:
希望你能自己再想出一種方法來 ....我還有法寶,不過言盡於止了
[ 本帖最后由 abel 于 2005-11-28 18:16 编辑 ] |
|