메일서버는 잘 사용하다가도 여러가지 원인에 의해 메일이 발송되지 않는 경우가 있습니다.
고객님 서버를 점검하다보면 자주 보게 되는것이 하나 있습니다.
Qmail 사용자의 queue 가 발송하지 못한 메일로 인해 다량 쌓여있는것인데요,
어차피 발송되지 못하는 메일(수신자없거나 블록처리된 – 보통 스팸 다량 발송) 이라면
이를 삭제하여 이후 발송하는 메일은 원활히 나가게끔 해주어야 합니다.
그 방법을 간단히 알아보겠습니다.
# cd /usr/local/src/
# wget http://www.netmeridian.com/e-huss/queue-fix.tar.gz
# tar xvzf queue-fix.tar.gz
# cd queue-fix-1.4
# make
# /etc/rc.d/init.d/qmail stop // qmail 가동을 중지 합니다.
# mv /var/qmail/queue /var/qmail/queue.bak // 혹시모르니 기존 디렉토리를 백업합니다.
# ./queue-fix -i /var/qmail/queue // [Y/N]를 두번 정도 물어보는데 모두 Y를 선택하면 됩니다.
혹시 진행중 아래와 같은 오류가 발생되면
./load auto-str substdio.a error.a str.a
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in substdio.a(substdo.o)
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [auto-str] 오류 1
아래와 같이 해결 가능합니다.
# vi error.h
extern int errno; 부분을 찾아 행을 삭제하고
#include <errno.h> 이부분으로 대체하면 됩니다. (앞에 #포함)
수정했으면 다시 컴파일 해주세요.
그리고 한가지 더 체크해주어야 할게 있는데요,
혹시 기존의 /var/qmail/queue 디렉토리에 22번이후의 번호가 존재할 경우
아래 스크립트를 이용해 23부터 199번까지 생성해줍니다.
# vi queue_add.sh // 파일을 생성하여 아래 내용을 추가
———————————————————————————————
#!/bin/bash
for ((a=23;a<=199;a++))
do
mkdir /var/qmail/queue/info/$a;
chown -R qmails.qmail /var/qmail/queue/info/$a;
chmod -R 700 /var/qmail/queue/info/$a;
mkdir /var/qmail/queue/local/$a;
chown -R qmails.qmail /var/qmail/queue/local/$a;
chmod -R 700 /var/qmail/queue/local/$a;
mkdir /var/qmail/queue/mess/$a;
chown -R qmailq.qmail /var/qmail/queue/mess/$a;
chmod -R 750 /var/qmail/queue/mess/$a;
mkdir /var/qmail/queue/remote/$a;
chown -R qmails.qmail /var/qmail/queue/remote/$a;
chmod -R 700 /var/qmail/queue/remote/$a;
done
———————————————————————————————
# sh queue_add.sh
# /etc/rc.d/init.d/qmail start // qmail 시작합니다.
이제 메일 발송을 해보세요. 잘 발송 될것입니다!
[polldaddy rating=”7739789″]