웹사이트 검색

Debian에서 fetchmail을 사용하여 원격 서버에서 이메일 검색


이 페이지에서

  1. 1 서문
  2. 2 페치메일 설치
  3. 3 가져오기 메일 구성
    1. 3.1 전역 구성 파일을 사용하여 데몬으로 fetchmail 실행\n
    2. 3.2 사용자별 구성 파일 사용 및 Cron을 통해 fetchmail 실행\n

    Fetchmail은 원격 서버에서 이메일을 검색하는 프로그램입니다. 5개의 서로 다른 서버에 5개의 이메일 계정이 있다고 가정해 보십시오. 물론 이메일을 받기 위해 각각에 연결하고 싶지는 않습니다. 이것은 fetchmail이 작동하는 곳입니다. Linux 서버에 사용자 계정이 있는 경우 fetchmail이 원격 서버에서 전자 메일을 다운로드하고 전자 메일 클라이언트(예: Thunderbird 또는 시야).

    또는 스팸 및 바이러스 필터링을 수행하지 않는 공급자의 이메일 계정이 있다고 상상해 보십시오. 이 경우 이메일 클라이언트로 메일을 다운로드하기 전에 fetchmail을 사용하여 메일을 자신의 서버로 다운로드하고 스팸 및 바이러스 필터(예: SpamAssassin 및 ClamAV)를 통해 파이프할 수 있습니다.

    1 서문

    이메일을 수신할 수 있는 시스템 사용자가 있는 Linux 서버가 필요합니다. 즉, Postfix 또는 Sendmail과 같은 MTA가 시스템에 설치되어 있어야 합니다. 그렇지 않으면 다운로드한 이메일을 MTA(Postfix, Sendmail, ...)로 전달하고 MTA가 메일을 사용자 사서함으로 전달하기 때문에 fetchmail이 작동하지 않습니다(스팸 및 바이러스를 포함하도록 시스템을 구성할 수 있음). 예를 들어 procmail을 사용하여 이 프로세스에서 스캔하지만 이 튜토리얼에서는 다루지 않습니다).

    나는 이 튜토리얼에서 falko와 till이라는 두 명의 사용자가 존재하는 데비안 시스템을 사용합니다.

    2 페치메일 설치

    fetchmail을 설치하려면 다음을 실행하기만 하면 됩니다.

    apt install fetchmail

    3 가져오기 메일 구성

    fetchmail을 구성하는 방법에는 두 가지가 있습니다. 전역 구성 파일을 사용하여 데몬으로 실행하거나 cron 작업을 생성하여 사용자별 구성 파일과 함께 fetchmail을 실행할 수 있습니다. 여기서는 두 가지 방법을 모두 설명하겠습니다.

    3.1 전역 구성 파일을 사용하여 데몬으로 fetchmail 실행

    fetchmail을 데몬으로 실행하려면 /etc/default/fetchmail을 편집하고 START_DAEMON을 yes로 설정해야 합니다.

    nano /etc/default/fetchmail
    # This file will be used to declare some vars for fetchmail
    #
    # Uncomment the following if you dont want localized log messages
    # export LC_ALL=C
    
    # Declare here if we want to start fetchmail. 'yes' or 'no'
    START_DAEMON=yes

    다음으로 구성 파일 /etc/fetchmailrc를 만들어야 합니다. 이 파일이 없으면 fetchmail 데몬이 시작되지 않기 때문입니다. 이 파일에서 우리는 fetchmail 데몬이 동작하는 방식과 외부 이메일 계정에서 이메일을 검색하기 위해 fetchmail이 알아야 하는 세부 정보를 지정할 수 있습니다.

    falko에 이메일을 검색하려는 두 개의 이메일 계정이 있다고 가정해 보겠습니다.

    • 첫 번째 계정: 서버 pop.someprovider.tld, 프로토콜 POP3, 사용자 이름[이메일 보호됨](예, 이 경우 사용자 이름은 이메일 주소임), 비밀 비밀번호.\n
    • 두 번째 계정: 서버 mail.otherprovider.tld, 프로토콜 POP3, 사용자 이름 ftimme, 비밀번호 verysecurepassword.\n

    하나의 이메일 계정이 있을 때까지:

    • 서버 mailin.tillsprovider.tld, 프로토콜 POP3, 사용자 이름 tbrehm, 암호 iwonttelyou.\n

    따라서 /etc/fetchmailrc 파일은 다음과 같습니다.

    nano /etc/fetchmailrc
    # /etc/fetchmailrc for system-wide daemon mode
    # This file must be chmod 0600, owner fetchmail
    
    set daemon        300                # Pool every 5 minutes
    set syslog                        # log through syslog facility
    set postmaster  root
    
    set no bouncemail                # avoid loss on 4xx errors
                                    # on the other hand, 5xx errors get
                                    # more dangerous...
    
    ##########################################################################
    # Hosts to pool
    ##########################################################################
    
    # Defaults ===============================================================
    # Set antispam to -1, since it is far safer to use that together with
    # no bouncemail
    defaults:
    timeout 300
    antispam -1
    batchlimit 100
    
    poll pop.someprovider.tld protocol POP3 user "" there with password "secret" is falko here
    poll mail.otherprovider.tld protocol POP3 user "ftimme" there with password "verysecurepassword" is falko here fetchall
    poll mailin.tillsprovider.tld protocol POP3 user "tbrehm" there with password "iwonttellyou" is till here keep

    파일 시작 부분에는 프로그램 작동을 제어하는 set daemon 300(fetchmail이 300초마다 이메일을 검색해야 함을 의미)과 같은 일부 전역 옵션이 있습니다. 위 옵션의 의미는 다음과 같습니다.

    • set daemon: 백그라운드 폴링 간격을 초 단위로 설정합니다.\n
    • set syslog: syslog를 통해 오류 로깅을 수행합니다.\n
    • set postmaster: 최종 메일 수신자의 이름을 지정합니다(기본값: fetchmail을 실행하는 사용자, 루트 사용자가 실행하는 경우 "postmaster").\n
    • 바운스 메일 설정 안 함: 위의 "postmaster" 전역 옵션에 따라 오류 메일을 로컬 포스트마스터에게 보냅니다.\n

    그런 다음 서버 및 사용자 옵션 옵션이 있습니다. 이들은 투표로 시작하는 행으로 함께 이동합니다. 각 폴 라인에 대해 동일한 옵션이 있는 경우 기본값으로 시작하는 섹션의 폴 라인 앞에 옵션을 지정할 수도 있습니다(예: 예에서 시간 초과, 안티스팸 및 배치 제한).

    • timeout: 서버 비활성 시간 초과(초 단위)(기본값 300).\n
    • 안티스팸: 스팸 정책 차단으로 해석되는 SMTP 반환을 지정합니다.\n
    • batchlimit: 연결을 의도적으로 끊고 다시 구축하기 전에 SMTP 수신기로 전달될 최대 메시지 수를 지정합니다(기본값은 0, 제한 없음을 의미).\n

    폴 라인은 자명합니다. 보시다시피 fetchmail은 falkos 외부 이메일 계정 모두에서 이메일을 검색하여 하나의 계정에 넣습니다.

    투표 라인의 끝이 다르다는 것을 알 수 있습니다(예: nofetchall(기본값), fetchall, keep, nokeep). 의미는 다음과 같습니다.

    • nofetchall: 새 메시지만 검색합니다(기본값). 아무것도 지정하지 않으면(예: fetchall, keep) nofetchall을 의미합니다.\n
    • fetchall: 표시 여부에 관계없이 모든 메시지를 가져옵니다.\n
    • keep: 서버에서 본 메시지를 삭제하지 않습니다.\n
    • nokeep: 서버에서 본 메시지를 삭제합니다.\n

    사용 가능한 모든 구성 설정에 대해 자세히 알아보려면 다음을 살펴보십시오.

    man fetchmail

    /etc/fetchmailrc는 600 권한이 있어야 하고 사용자 fetchmail이 소유해야 하므로 다음을 수행합니다.

    chmod 600 /etc/fetchmailrc
    chown fetchmail /etc/fetchmailrc

    마지막으로 fetchmail을 시작할 수 있습니다.

    /etc/init.d/fetchmail start

    Fetchmail은 이제 이메일을 다운로드하여 falkos 및 tills 사서함에 넣습니다(MTA 사용). 설정된 데몬 초마다 이것을 반복합니다.

    3.2 사용자별 구성 파일 사용 및 Cron을 통해 fetchmail 실행

    3.1장에 표시된 전역 구성 파일을 사용하는 대신 사용자별 구성 파일을 사용할 수 있습니다. 이들은 이름이 .fetchmailrc여야 하며 사용자 homedir에 있어야 합니다.

    이제 사용자 falko를 위해 이러한 파일을 생성하려고 합니다. 루트가 아닌 falko로 로그인했는지 확인하십시오! 그런 다음 이렇게 합니다.

    cd ~/
    vi .fetchmailrc
    set postmaster falko
    set bouncemail
    
    poll pop.someprovider.tld protocol POP3 user "" there with password "secret"
    poll mail.otherprovider.tld protocol POP3 user "ftimme" there with password "verysecurepassword" fetchall

    이 파일은 3.1장에 있는 /etc/fetchmailrc 파일과 매우 유사해 보이지만 여기서는 is falko라는 문구를 더 이상 사용하지 않는다는 것을 알 수 있습니다(.fetchmailrc가 falkos homedir에 있으므로 fetchmail은 메일이 falko로 배달되어야 함을 알고 있음) . 물론 여기서 is falko를 계속 사용할 수 있으므로 파일도 다음과 같이 표시될 수 있습니다.

    set postmaster falko
    set bouncemail
    
    poll pop.someprovider.tld protocol POP3 user "" there with password "secret" is falko here
    poll mail.otherprovider.tld protocol POP3 user "ftimme" there with password "verysecurepassword" is falko here fetchall

    사용 가능한 모든 구성 설정에 대해 자세히 알아보려면 다음을 살펴보십시오.

    man fetchmail

    .fetchmailrc에는 600 권한이 있어야 falko만 읽고 쓸 수 있습니다.

    chmod 600 ~/.fetchmailrc

    그게 다야. 이제 falko는 다음을 실행하여 검색 프로세스를 시작할 수 있습니다.

    fetchmail

    또는

    fetchmail -v

    무슨 일이 일어나고 있는지 보여줍니다.

    물론 falko는 몇 분마다 수동으로 검색을 시작하는 것을 원하지 않으므로 우리는 그를 위해 크론 작업을 생성합니다. 여전히 사용자 falko로 실행합니다.

    crontab -e

    다음과 같은 크론 작업을 생성합니다(5분마다 가져오기 메일을 시작함).

    */5 * * * * /usr/bin/fetchmail &> /dev/null

    4 링크

    • 데비안: http://www.debian.org
    • Fetchmail: http://fetchmail.berlios.de