sendmail的aliases能做到mysql資料庫里嗎?
請教一個問題:
現在郵件伺服器的用戶都用mysql資料庫管理,用的sendmail+mimedefang,現在想把郵件群組也放到mysql資料庫中管理,google了一下,沒找到什麼答案,不知道CUer做過此類配置或者有什麼關於這個問題的線索,指點一下,多謝!
《解決方案》
這東西你用 mimedefang 解即可
只是個範例,隨手寫而以, 你自己參考看看
foreach my $recip (@Recipients) {
$recip=~/<(\S)@(\S)>$/;
my ($localpart,$domainpart)=($1,$2);
next if (! ismydomain($domainpart)); # 不是自己的域名不做 expand 解釋
next if ( !ismyaliases($localpart)); # 不在 mysql aliases 中
delete_recipient($recip) if (is_local_user($localpart) && ismyaliases($localpart) ); # 如果 aliases 同 user 帳號,則 user 帳號會不在收件人之列
foreach my $element (expand($localpart)) {
add_recipient($element);
}
}
sub ismydomain($)
{
my $domain;
# 讀取 local-host-names 判斷,或以 $local-host-names 變數判斷
open(LHN,"< /etc/mail/local-host-names");
$lhn=<LHN>;
$local_host_names=join('',@lhn);
if ($domain=~/$local_host_names/i) { # 本機的 user/aliases
return 1;
} else {
return 0;
}
}
$alasies="all rd fae services " #aliases 列表,可程式自動生成,這裡只是舉例故用變數代表
sub ismyaliases($)
{
my $user;
($user=~/$aliases/i) ? return 1:return 0;
}
sub expand($)
{
my $exp;
# DBI select DB ...
$sth = $dbh->prepare("select user from aliases where aliases_name='$exp'");
$sth->execute;
$rows = $sth->rows;
return $exp if ($rows==0);
return (@expand_list); # 自己處理一下 mysql select 結果
}
《解決方案》
自己頂一下:wink: :wink:
《解決方案》
原帖由 abel 於 2008-12-3 10:47 發表 http://bbs.chinaunix.net/images/common/back.gif
這東西你用 mimedefang 解即可
只是個範例,隨手寫而以, 你自己參考看看
foreach my $recip (@Recipients) {
$recip=~/$/;
my ($localpart,$domainpart)=($1,$2);
next if (! ismydomain($ ...
abel對sendmail研究很深呀,踩個腳印,或許以後用的著:mrgreen: :mrgreen:
《解決方案》
原帖由 abel 於 2008-12-1 20:28 發表 http://bbs.chinaunix.net/images/common/back.gif
這東西你用 mimedefang 解即可
只是個範例,隨手寫而以, 你自己參考看看
foreach my $recip (@Recipients) {
$recip=~/$/;
my ($localpart,$domainpart)=($1,$2);
next if (! ismydomain($ ...
abel兄,一語驚醒夢中人啊,太感謝了,我怎麼就沒有想到用mimedefang呢?太妙了!
再次感謝,我好好研究一下~