반응형

qmail은 하나의 전체 설정 파일을 사용하지 않고 /var/qmail/control/ 안에 다음과 같이 분리되고 각각의 기능을 하는 설정파일들을 사용합니다. 각 설정 파일들의 목적은 매우 뚜렷하고 이해와 수정이 용이합니다. 다음 콘트롤 파일들이 모두 존재하고 있어야 하는 것은 아니며, 필요에 따라 만들어 줍니다. -- 임은재 2004-04-15 21:25:37


정의

bounce : 어떤 이유로든 메일이 되돌려 질때 (from: 헤더가 있는 경우)

double bounce : bounce 한 메일이 다시 되돌아 오는 경우

me 는 FQDN으로 명기한 도메인 명이 적혀있는 me 라는 파일을 의미합니다.

Control 파일 Default 사용 설명
rcpthosts 없음 qmail-smtpd 메일을 받아들일 도메인(들)
badmailfrom 없음 qmail-smtpd 이 메일주소로 부터 오는 메일은 553 sorry, your envelope sender is in my badmailfrom list 라는 메세지와 함께 무조건 User unknown으로 bounce 한다.
bouncefrom MAILER-DAEMON qmail-send bounce 할때 메일의 from: 헤더에 들어갈 유저 이름.
bouncehost me qmail-send bounce 할때 메일의 from: 헤더에 들어갈 호스트 이름.
concurrencylocal 10 qmail-send 로컬 메일 배달시 qmail-send의 동시 최대 프로세스의 수를 조절
concurrencyremote 20 qmail-send 리모트 메일 배달시의 qmail-send 동시 최대 프로세스 수를 조절
databytes 0 qmail-smtpd 메일의 최대 크기(byte, 0 = 무제한)
doublebouncehost me qmail-send double bounce 된 메일을 수신할 호스트
doublebounceto postmaster qmail-send double bounce 된 메일을 받을 유저
envnoathost me qmail-send 메일주소에 @ 가 명시되지 않았을 경우의 디폴트 도메인 이름
helohost me qmail-remote SMTP HELO 명령에 표시될 호스트 이름
localiphost me qmail-smtpd 로컬 IP 주소가 대체될 이름
locals me qmail-send 로컬로 인식하며 배달할 도메인(들)
me 시스템의 FQDN . 다른 콘트롤 파일을 위해 쓰임
morercpthosts 없음 qmail-smtpd 두번째 rcpthosts 파일
percenthack 없음 qmail-send "%"-형식의 릴레이를 사용 할 수 있는 도메인
plusdomain me qmail-inject domain substituted for trailing "+"
qmqpservers 없음 qmail-qmqpc QMQP 서버의 IP 주소
queuelifetime 604800 qmail-send 메세지가 메일 큐안에 머물 수 있는 시간 (초단위)
smtpgreeting me qmail-smtpd SMTP greeting message
smtproutes 없음 qmail-remote artificial SMTP routes
timeoutconnect 60 qmail-remote SMTP 연결 대기 시간 (초)
timeoutremote 1200 qmail-remote 리모트 서버 연결 대기 시간 (초)
timeoutsmtpd 1200 qmail-smtpd SMTP client 대기 시간 (초)
virtualdomains 없음 qmail-send 가상 도메인들과 유저들
defaultdomain me qmail-inject 기본 도메인 이름
defaulthost me qmail-inject 기본 호스트 이름
idhost me qmail-inject Message-ID 에 사용될 호스트 이름



머 대충 이런내용인데 qmail kldp에 가입이 안되어잇어서 comment를 달수가 없..어서 다음과 같이 글을 남김...

주 골자는 다음과 같음
me <- 이놈이 아무런 현상이 없다, 참조하는 곳이 없는거 같다라고 glay옹에게 물어봐서 답변이
다른게 설정이 되지 않으면 me가 디폴트인것만 설정이 된다..라는 것.

이런식으로 더 추가해볼 까 한다 하악..
회사 wiki완성되면 쓰고 -0-
=3
반응형

'Tip & Tech > Linux | Unix' 카테고리의 다른 글

리눅스 타임존(time zone) 변경..  (0) 2010.10.20
Bash 파일명 패턴으로 지우기  (0) 2010.10.20
ld.so.conf 사용법  (0) 2010.10.20
qmail 더블바운싱 되는 메일 처리 하기  (0) 2010.10.20
qmail 관련 명령어들.  (0) 2010.10.20
반응형

-- 기존 qmail-remote를 qmail-remote-org로 이름변경
$  mv /var/qmail/bin/qmail-remote /var/qmail/bin/qmail-remote-org

-- qmail-remote perl script파일을 다음과 같이 만들자.
$ vi /var/qmail/bin/qmail-remote
/** --------------------------------------------------------------------------------- **/
#!/usr/bin/perl

# 스탠다드 입력으로 메일 내용을 읽어들인다.
undef $/;
$inputdata = <STDIN>;
$/ = "\n";
$inputdata =~ /Subject: (.*)/;
$subject = $1;
$inputdata =~ /Received: from.*\(([0-9.]+)\)/;
$ip = $1;

# 시간을 구한다.
$now_string = localtime;

# 로그를 기록한다.
open FH, ">>/var/log/qmail-remote.log";
flock(FH,2);
print FH "\n===================================================================";
print FH "\nARGV[0]:$ARGV[0]\nARGV[1]:$ARGV[1]\nARGV[2]:$ARGV[2]";
print FH "\n$now_string\nIP:$ip\nTo:$ARGV[2]\nFrom:$ARGV[1]\nSubject:$subject\n";
close FH;

# 특정 제목이면 보내지도 않고 보냈다고 에러코드를 리턴하고 종료한다.
if ($subject =~ /^\s*(광고|대출|뽈노)\s*\s+/i) { #광고성 제목의 메일 pass
    exit 1;
}

if ($ARGV[1]=~ m/root@windows.or.kr/) {
    exit 1;
}
if ($ARGV[1]=~ m/postmaster@windows.or.kr/) {
    exit 1;
}
if ($ARGV[1]=~ m/anonymous@windows.or.kr/) {
    exit 1;
}


if ($ARGV[2]=~ m/anonymous@windows.or.kr/) {
    exit 1;
}
if ($ARGV[2]=~ m/root@windows.or.kr/) {
    exit 1;
}
if($ip =~ m/Cron/)      {    # 크론이 메일을 발송하는 경우 Cron으로 시작하는 ip값을 가지는 것도 있으니 추가
    exit 1;
}

#if($ARGV[1] =~ /\s*(?:root|postmaster|anonymous|)\s*/i)
#{
#exit 1;
#}
#if($ARGV[2] =~ /\s*(?:root|postmaster|anonymous|)\s*/i)
#{
#exit 1;
#}

# 원래 qmail-remote 프로그램을 실행시킨다.
open (MAIL, "| /var/qmail/bin/qmail-remote-org $ARGV[0] $ARGV[1] $ARGV[2]");
print {MAIL} $inputdata;
close MAIL;
/** --------------------------------------------------------------------------------- **/
                                                        

설명)
바운싱이나 더블바운싱이 되는 원리는.
역시 없는 메일로 보낸 메일의 리턴때문이다.
postmaster, root, anonymous 등의 메일이 from:이나 to:에 들어가므로 파라메터로 들어오는
ARGV[1]. ARGV[2]에서 검사후 강제 종료시켜버리면
/var/qmail/queue/mess에 남아 꾸준히 발송하여 프로세스를 잡아먹는 현상을 방지 할 수 있다.
반응형

'Tip & Tech > Linux | Unix' 카테고리의 다른 글

qmail control 파일들  (0) 2010.10.20
ld.so.conf 사용법  (0) 2010.10.20
qmail 관련 명령어들.  (0) 2010.10.20
Java 2 SDK, Standard Edition, v. 1.4.2 Installation Notes  (0) 2010.10.20
RHEL 관련 java, javac가 gij* 라면  (0) 2010.10.20
반응형

-- 큐 삭제
  - 패턴으로 삭제
    $ /var/qmail/bin/qmail-remove -p foolabo -r
  - 전체 삭제
    $ /var/qmail/bin/qmail-remove -r
-- 큐 상황(갯수)
    $ /var/qmail/bin/qmail-qstat
-- 큐 읽기
    $ /var/qmail/bin/qmail-read
로그보기 tai64nlocal 변환
ex) cat /var/log/qmail/qmail-smtpd/current | /usr/local/bin/tai64nlocal
반응형

+ Recent posts