[IMAP] Qmail + Vpopmail + Dovecot 연동하기

리눅스/Mail|2015. 1. 23. 09:27
반응형

[출처]

http://community.365managed.com/191#0

http://community.365managed.com

http://www.365managed.com

 

 

 

"Imap"을 쓰기 위해, Qmail + Vpopmail + Courier-imap 연동방식을 이용해도 메일 확인에 전혀 문제가 없습니다만............

[IMAP] 이용시(Pop3이용시는 무관?), 편지함이 달랑 [받은 편지함]만 제공된다는 것이...........

물론, 받은 편지함 하위에 새로운 편지함을 만들수는 있지만, 통상적으로 제공되는

[보낸 편지함], [지운 편지함]기능이 제공되지 못해, 상당히 빈약(?)하죠....

Qmail에, Dovecot와 연동하면 이러한 부분이 말끔하게 해소 됩니다.

Dovecot 소스 설치를 해야 하며, configure 옵션에 vpopmail 연동하는 옵션이 기본 지원됨.


제가 작업한 시스템 환경은, 아래와 같습니다.

======================================
OS : CentOS 5.2 x86_64
Mailer : Qmail + Vpopmail 이용중이었음...
======================================

(상기 정보와 다른 상황에서는 미 확인. 그러나 작업과정상 크게 문제될 것은 없어 보임)

<Dovecot 연동 작업 과정 요약>

1. openssl openssl-devel 패키지 설치 (ssl 기반의 imap 이용시 요구됨. 필요 없다면 생략 가능)
# yum -y install openssl openssl-devel

2. RPM으로 설치된 Dovecot 제거
# yum -y remove dovecot

3. 소스로 설치될 Dovecot 사용자, 그룹 생성
# groupadd -g 97 dovecot
# useradd -g 97 -u 97 -d /usr/local/libexec/dovecot -s /sbin/nologin dovecot

4. Dovecot 소스 최신 버전 다운로드 (현재 최신 버전은 dovecot-1.1.3.tar.gz 이었음)
http://www.dovecot.org/download.html
# wget http://www.dovecot.org/releases/1.1/dovecot-1.1.3.tar.gz

5. 압축 해제
# tar zxvf dovecot-1.1.3.tar.gz

6. Configure (필수 옵션 : --with-vpopmail)
# ./configure --with-vpopmail --with-ssl=openssl

7. 컴파일 & 설치
# make
# make install

8. "vpopmail" 유저 uid 번호 확인
# id -u vpopmail

9. Dovecot 설정파일 생성
아래 내용에서, [first_valid_uid = 508] 부분의 숫자를 (8)번 과정에서 확인한 번호로 수정한 후, /usr/local/etc/dovecot.conf 파일로 저장
(필요한 경우, protocols 부분은 적당히 수정)
# vi /usr/local/etc/dovecot.conf
 ## Ex) protocols = imap imaps pop3 pop3s
protocols = imap pop3
#listen = 192.168.0.123
ssl_disable = yes
disable_plaintext_auth = no
login_process_per_connection = no
login_greeting = Ready
mail_debug = yes
first_valid_uid = 508
protocol imap {
}
auth_verbose = yes
auth_debug = yes
auth default {
 mechanisms = plain
 passdb vpopmail {
 }
 userdb vpopmail {
 }
 user = vpopmail
}

10. Dovecot init 스크립트 생성
# vi /etc/init.d/dovecot

 #!/bin/bash
#
#   /etc/rc.d/init.d/dovecot
#
# Starts the dovecot daemon
#
# chkconfig: - 65 35
# description: Dovecot Imap Server
# processname: dovecot
# Source function library.
. /etc/init.d/functions

test -x /usr/local/sbin/dovecot || exit 0

RETVAL=0
prog="Dovecot Imap"

start() {
        echo -n $"Starting $prog: "
    daemon /usr/local/sbin/dovecot
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dovecot
    echo
}

stop() {
    echo -n $"Stopping $prog: "
    killproc /usr/local/sbin/dovecot
    RETVAL=$?
    [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dovecot
    echo
}

#
#   See how we were called.
#
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload|restart)
    stop
    start
    RETVAL=$?
    ;;
  condrestart)
    if [ -f /var/lock/subsys/dovecot ]; then
        stop
        start
    fi
    ;;
  status)
    status /usr/local/sbin/dovecot
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {condrestart|start|stop|restart|reload|status}"
    exit 1
esac

exit $RETVAL


11. Dovecot init스크립트 권한 조정
# chmod 700 /etc/init.d/dovecot
# chown root:root /etc/init.d/dovecot

12. ntsysv 등록
# chkconfig --add dovecot
# chkconfig --level 345 dovecot on

13. /etc/init.d/dovecot start

14. /var/log/message에 Dovecot 작동 로그에 특별한 에러가 보이지 않는다면, 정상 설치 된 것임.

[설치 작업 완료]

남은 부분은....... Qmail + Vpopmail + Dovecot 작동이 정상적인지, 그리고 [받은편지함], [보낸편지함], [지운편지함] 기능이

"Imap"에서도 정상적으로 지원되는지 확인하면 모든 작업 완료.
 
 
※ 내용 추가 (sysdocu)
설정 후에도 /var/log/maillog 파일에 아래와 같은 로그가 남는다면
 
Jul 24 10:45:27 localhost dovecot: auth(default): passwd(webmaster@sysdocu.com,192.168.10.2): unknown usere
 
dovecot.conf 파일에 아래 옵션을 추가해줍니다. (vpopmail 은 DB명)
  userdb vpopmail {
  }


반응형

댓글()

qmail 구동 되지 않을때

리눅스/Mail|2015. 1. 23. 09:26
반응형

[오류]

[root@mail service]# /etc/init.d/qmail stop
Stopping qmail...
  qmail-smtpd
svc: warning: unable to control /service/qmail-smtpd: supervise not running
svc: warning: unable to control /service/qmail-smtpd/log: supervise not running
  qmail-send
svc: warning: unable to control /service/qmail-send: supervise not running
svc: warning: unable to control /service/qmail-send/log: supervise not running
  qmail pop3
svc: warning: unable to control /service/vpop: supervise not running
svc: warning: unable to control /service/vpop/log: supervise not running
[root@mail service]# /etc/init.d/qmail start
Starting qmail

> stop 은 위와 같은 에러가 출력되고,

   start 는 에러가 발생하지 않으나 포트가 오픈되지 않을때.

 

[해결]

/command/svscanboot &

/etc/init.d/qmail start

 

/etc/inittab 에도 아래 행을 삽입하여 부팅시 정상 작동되도록 합니다.

 

SV:123456:respawn:/command/svscanboot

 

반응형

댓글()

sendmail에서 localhost [127.0.0.1] did not issue MAIL/EXPN/VRFY/ETRN during connection

리눅스/Mail|2015. 1. 23. 09:26
반응형

sendmail에서 포트확인시

telnet localhost 25 
로 확인할때 응답이 느릴경우가 있다.

물론 로컬에서 메일을 보낼때도 느리지만, 외부에서 25번포트 접속시에는 빠르게 접속된다.
maillog를 보면 아래와 같이 메시지가 나타난다면.

Apr  2 14:51:27 moa sm-mta[1059]: n325pQea001059: localhost [127.0.0.1] did not issue MAIL/EXPN/VRFY/ETRN during connection to IPv4


sendmail.cf 에

Timeout.ident=0s


로 기술해보면 로컬에서도 빠르게 응답할것이다.
이걸로 4시간 삽질했따아...

 

[출처] 임성진의 블로그입니다~~ (http://blog.bbom.org/31)

반응형

댓글()

큐에서 특정 도메인의 메일만 삭제하기

리눅스/Mail|2015. 1. 23. 09:25
반응형
주말에 회사 메일서버 정리 작업하면서 알게된 프로그램입니다. 

http://www.linuxmagic.com/opensource/qmail/qmail-remove 
에서 다운로드 할 수 있습니다. 

큐에 스팸이 가득차 있거나 할때 사용하면 됩니다. 

1. 설치 
wget http://www.linuxmagic.com/opensource/qmail-remove-0.95.tar.gz 
tar xvfz qmail-remove-0.95.tar.gz 
cd qmail-remove-0.95 
make 
mkdir /var/qmail/queue/yanked 

2. 사용 
qmail 정지(qmail을 죽이지 않다도 큐는 삭제되나 영향은 모릅니다. ^^;) 
qmail-remove -r -p 도메인 

-- 결과 
324001: yes 
moved mess/0/324001 to yanked/324001.mess 
moved remote/0/324001 to yanked/324001.remote 
moved info/0/324001 to yanked/324001.info 
324024: yes 
moved mess/0/324024 to yanked/324024.mess 
moved remote/0/324024 to yanked/324024.remote 
moved info/0/324024 to yanked/324024.info 


더 다양한 방법은 http://www.debianadmin.com/delete-qmail ... queue.html 을 참조합니다.
 
 
[출처] qmail.kldp.net | junilove (http://qmail.kldp.net/phpbb/viewtopic.php?f=3&t=8060)


반응형

댓글()

qmail 에서 특정 도메인으로의 발송을 제한 하기

리눅스/Mail|2015. 1. 23. 09:25
반응형

예를 들어 서버를 통해 발송되는 메일중 test.com 도메인으로 발송되는 메일만을 제한 하려면 /var/qmail/control/virtualdomains 파일에 다음을 추가하고,

 

test.com:null


.qmail-null 파일을 만든다.
echo "#" > /var/qmail/alias/.qmail-null
 

이제 test.com 으로 발송되는 메일은 로컬 null 계정으로 배달될 것이고, .qmail-null 파일의 내용에 의해 삭제될 것이다.
 

[출처] 린사랑 | 린사랑 (http://blog.naver.com/hwantagexsw2?Redirect=Log&logNo=3004680)

반응형

댓글()

한메일(hanmail.net) 으로만 메일 발송이 되지 않을때

리눅스/Mail|2015. 1. 23. 09:25
반응형

1. daum.net 으로 발송이 되고 hanmail.net 으로 발송이 안되는경우

<첫번째 방법>

/etc/resolv.conf 파일의 첫번째 네임서버를 아래와 같이 변경해보시기 바랍니다.
 

nameserver 210.220.163.82        // SK네임서버(하나포스) 

 

 

<두번째 방법>

 /etc/sysconfig/network 파일의 HOSTNAME 부분을 아래와 같이 변경합니다.

 

HOSTNAME=FQDN

 

그리고 아래와 같이 현재 구동중인 서버에 바로 적용을 합니다.

sysctl -w "kernel.hostname=FQDN"

 


2. daum.net, hanmail.net 둘다 발송 안될 경우


hostname 이 localhost 또는 localhost.localdomain 으로 되어 있지 않나 확인 필요.

hostname 을 사용중인 도메인으로 바꾸면 정상 발송 됩니다.


반응형

댓글()

CNAME_lookup_failed_temporarily._(#4.4.3)

리눅스/Mail|2015. 1. 23. 09:24
반응형

CNAME_lookup_failed_temporarily._(#4.4.3)

qmail 에서 dns oversize 패치 까지 완료 했는데 위 오류가 나타남

 

daum.net  으로 발송은 되고 hanmail.net  으로 발송이 안됨  -> 동일한 메일주소 a@daum.net  a@hanmail.net

 

mx 레코 정상 쿼리됨

원인 검색도중  /etc/resolv.conf 파일 네임서버 수정

 

기존 resolv.conf

nameserver 168.126.63.1

kt 로 잡혀 있었음

SK 네임서버로 변경

변경

nameserver 210.220.163.82
nameserver 168.126.63.1

변경후 발송 테스트 정상적으로 daum.net , hanmail.net  으로 전송 완료

정확한건 아니지만 KT 쪽 DNS 에 일시적으로 DNS 장애 발생의심.

 

 

[출처] 하루 (http://blog.naver.com/cratck/20125798109)

반응형

댓글()

vpopmail 의 명령어 실행시 에러

리눅스/Mail|2015. 1. 23. 09:24
반응형

[증상]

/home/vpopmail/bin 내의 명령어 실행시 아래와 같은 에러 메세지 출력

 

./vadduser userid@sysdocu.com

enter password for userid@sysdocu.com

enter password again:
vmysql: error creating table 'dir_control': MySQL server has gone away
vmysql: error creating table 'dir_control': MySQL server has gone away
vmysql: sql error[b]: MySQL server has gone away
vmysql: sql error[3]: MySQL server has gone away
vmysql: sql error[2]: MySQL server has gone away
Failed while attempting to add user to auth backend
Error: no auth connection

 

[원인]

vpopmail 에서 DB에 접속하지 못하였습니다.

 

 

[해결] 

1) 첫번째 방법

    : DB연결 파일 확인

cat /home/vpopmail/etc/vpopmail.mysql

localhost|0|vpopqmail|passwd|vpopqmail

 

호스트, 포트번호, 유저명, 패스워드, DB명 이 정상으로 입력 되었는지 확인해봅니다.

포트번호는 0으로 두어도 됩니다.

 

 

2) 두번째 방법

    : /var/lib/mysql/mysql.sock 파일 확인

 

[client] 와 [mysqld] 부분에 소켓이 /tmp/mysql.sock 으로 생성되게 셋팅되어있을 경우 아래와 같이 심볼릭 링크파일을 생성해줍니다.

vpopmail 에서 /var/lib/mysql/mysql.sock 파일을 참조하기 때문입니다.

 

ln -s /tmp/mysql.sock /var/lib/mysql/

반응형

댓글()

Qmail 자동응답 설정 방법 두가지

리눅스/Mail|2015. 1. 23. 09:23
반응형

QmailAdmin 으로 설정하는 자동응답은 사용이 가능하지만 썩 좋아 보이지는 않습니다.
(제가 방법을 잘 모르는것일 수 있지만요. ^^;)

우선 QmailAdmin 으로 설정하는 방법을 안내해드립니다.


 

1. QmailAdmin 에서 자동응답 설정

 

QmailAdmin 에 관리자로 로그인하고 나면 크게 두가지 메뉴로 나뉩니다.

 

[메인 메뉴] / [퀵 링크]

 

[퀵링크] 부분의 '자동 응답 추가' 버튼을 누르면 아래와 같은 입력폼이 나옵니다.
이때 폼에 알맞은 내용을 입력하면 됩니다.


자동 응답명 : [             ]@sysdocu.com
// 이 부분은 없는 계정을 입력해야 합니다.
   입력한 계정은 실제 계정이 아닌 가상의 계정이 됩니다.
   system 이라는 계정이 응답하게 하고 싶으시면
   system 이라는 계정 삭제후 이곳에 system 이라고 등록하시면 됩니다.
   ('참고' 부분 먼저 확인하세요.)

 

오너 메일 주소 : [              ]
// 이 부분은 보통 관리자 계정을 입력하면 되는데, '자동 응답명'에서 응답한 메일을
   숨은 참조로 관리자가 똑같이 받아보게 됩니다.
   누가 메일을 보내 system 이라는 계정이 자동응답을 하게 되었는지 관리자 입장에서 알 수 있습니다.

 

건명(내용) : [             ]

// 자동응답할 메일의 본문 내용입니다.

 

[추가] 버튼을 눌러 자동응답 설정을 한 계정은 [메인 메뉴]의 '자동응답'에서 확인이 가능합니다.


※ 참고
system 이라는 계정이 사용중인 계정이였다면 자동응답 기능을 위해
삭제 후, 자동응답 설정하기가 어렵습니다. (기존 메일이 삭제되기 때문에)
이경우 수동으로 설정하는 두번째 방법이 있습니다.


 

2. 서버내에서 수동 설정

 

서버에 원격접속하여 자동응답을 원하는 계정의 디렉토리로 이동합니다.

cd /home/vpopmail/domains/sysdocu.com/system

 

자동응답에 필요한.qmail, message 파일들을 생성해야 합니다.
.qmail 파일을 생성하여 아래 내용을 입력합니다.
vi .qmail

| /usr/local/bin/autorespond 86400 3 /home/vpopmail/domains/sysdocu.com/system/vacation/message /home/vpopmail/domains/sysdocu.com/system/vacation
/home/vpopmail/domains/sysdocu.com/system/Maildir/

 

vacation 디렉토리를 생성합니다.
mkdir vacation

 

.qmail 과 vacation 의 소유자를 변경합니다.
chown vpopmail.vchkpw .qmail vacation

 

vacation 디렉토리 안에 message 파일을 생성하여 메일로 보낼 내용을 입력합니다.
vi vacation/message

제가 휴가중이라 메일을 받지 못합니다.

휴가 다녀와서 연락드리겠습니다.


자동응답 설정이 완료되었으며 qmail 을 재가동할 필요는 없습니다.

 

해제 방법은 간단히 .qmail 파일과 vacation 디렉토리와 message 파일을 삭제하시면 됩니다.

반응형

댓글()

POP3(neulwon): mbox: Can't create root mail directory /home/neulwon/mail: Permission denied

리눅스/Mail|2015. 1. 23. 09:23
반응형
[오류]
Nov  2 12:31:38 localhost dovecot: pop3-login: Login: user=<sysdocu>, method=PLAIN, rip=::ffff:192.168.10.2, lip=::ffff:192.168.10.10
Nov  2 12:31:38 localhost dovecot: POP3(sysdocu): mbox: Can't create root mail directory /home/sysdocu/mail: Permission denied
Nov  2 12:31:38 localhost dovecot: POP3(sysdocu): MAIL environment missing and autodetection failed (home /home/sysdocu)
Nov  2 12:31:38 localhost dovecot: child 18909 (pop3) returned error 89
 
[원인]
/home/sysdocu/mail 디렉토리가 없어서 생기는 오류로
mkdir -p /home/sysdocu/mail 명령으로 디렉토리를 생성하면 해결이 됩니다.
하지만 홈디렉토리 내 불필요한 폴더가 많아지므로 아래 해결방법으로 처리합니다.
 
 
[해결]
/etc/dovecot.conf 파일의 mail_location 항목을 아래와 같이 수정하여 주고(주석 해제) dovecot 을 재시작 합니다.
 
mail_location = mbox:/var/empty:INBOX=/var/spool/mail/%u:INDEX=MEMORY

 

# /etc/init.d/dovecot restart


반응형

댓글()

rejecting connections on daemon MTA: load average: 123

리눅스/Mail|2015. 1. 23. 09:22
반응형

Nov 11 09:59:30 www sendmail[600]: rejecting connections on daemon MTA: load average: 67
Nov 11 09:59:45 www sendmail[600]: rejecting connections on daemon MTA: load average: 68
Nov 11 09:59:04 www sendmail[600]: rejecting connections on daemon MTA: load average: 70


로그에 이와 같은 메세지가 출력되어있다면 시스템 부하를 확인해보아야 합니다.

load average 가 12 이상일 경우 sendmail 기능이 멈춥니다.

아래와 같은 명령어로 확인이 가능합니다.

 

# uptime

 

반응형

댓글()