fetchmail을 사용하여 특정 계정의 메일만 검색

fetchmail을 사용하여 특정 계정의 메일만 검색

상태

나는 다음을 가지고 있습니다~/.fetchmailrc

poll pop.gmail.com       protocol pop3 user "[email protected]"      password "***"            ssl
mda "/usr/bin/procmail -d default -a foo@example-com"

poll pop.gmail.com       protocol pop3 user "[email protected]"      password "***"            ssl
mda "/usr/bin/procmail -d default -a bar@example-com"

따라서 fetchmail -v -m '/usr/bin/procmail -d %T'.

질문

그런데 문제는 모든 계정이 복구됐다는 점이다.

질문

특정 주소에 대한 메일만 검색하도록 fetchmail 명령을 요청할 수 있습니까?

답변1

각 계정에 다른 이름을 지정하고 via옵션 을 사용할 수 있습니다

예를 들어

poll foo via pop.gmail.com ...

poll bar via pop.gmail.com ...

이제 명령줄에서 각 항목을 지정할 수 있습니다. fetchmail foo해당 계정의 메일만 가져옵니다.

Outlook에서는 다음과 같은 유형의 구조를 사용합니다.

poll outlook via imap-mail.outlook.com port 993
  proto IMAP
  user [email protected] is foo here
  fetchall
  password *****
  ssl

poll outlook2 via imap-mail.outlook.com port 993
  proto IMAP
  user [email protected] is bar here
  fetchall
  password *****
  ssl

이는 zsh에서 다음과 같이 달성할 수 있습니다.

메시지 검색을 위한 별칭 및 기능

alias retrieveallmails="fetchmail -v -m '/usr/bin/procmail -d %T'" # For all the accounts

function retrievemail()
{
    # For a specific account
    fetchmail $1 -v -m '/usr/bin/procmail -d %T'
}

관련 완료

_retrievemail_complete() {
    local accounts
    accounts=($(fetchmail --configdump | sed -n 's/.*"pollname":"\(.*\)",/\1/p'))


    _arguments \
        '1: :->account' \
        '*:: :->arguments'

    case $state in
        (account)
            _describe 'accounts' accounts
            ;;
        (arguments)
            _files
            ;;
    esac
}

compdef _retrievemail_complete retrievemail

관련 정보