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

関連情報