LinuxシェルのIMAPサーバーから電子メールを削除する方法は? [閉鎖]

LinuxシェルのIMAPサーバーから電子メールを削除する方法は? [閉鎖]

この質問は提案どおりにコピーされました。これ StackOverflowではプログラミングの質問だけですが、Linuxツールに依存しているようです。解決策(見つかった場合)へのリンクを2つの場所に投稿します。

よくわかりません。IMAPメールなぜなら、私はいつもPOP3を使ってきたからです。しかし、メールを削除たとえば、Windowsの電子メールクライアントに含まれているツールを使用して、POP3メールサーバーからメールを送信できます。バット!

ところで今は新しい職業を持つようになりました。IMAPアカウント愚かな質問があります。場合によっては、自分のドメインの外部から送信された電子メールが部分的に届か@myenterprise.comずにそれを検出する方法を作成したい場合があります。

ただ単純なシェルスクリプト(スクリプトに関しては、私はLinuxをとても好みます。)外部アカウントから定期的に電子メールを送信し、正しく到着していることを確認するだけで十分です。しかし、毎時間実行するようにスケジュールすると...まあ、多くのことがあるでしょう。数日以内にSubject:Test電子メールがスパムボックスに含まれています。したがって、解決策は確認後にIMAPサーバーから削除することです。

どうやってできるか削除送信した特定のメールIMAPサーバー:Linuxシェルスクリプト方式で?

解決策が具体的であれば、Bashシェルが好ましい。

ベストアンサー1

私はPythonスクリプトを選択します。次のスクリプトは、IMAPサーバー、ユーザー名とパスワード、タイトル文字列を要求します。その後、タイトルに指定されたタイトル文字列を含むすべてのメッセージが一覧表示されます。

コメントが並んでいます。imapserver.store(num, '+FLAGS', '\Deleted')行動に満足した時。これにより、表示されたメッセージが削除されます。

#!/usr/bin/python3

import getpass

def del_imap(server, port, login, password, search):
    import imaplib, email

    # NOTE: According to RFC 1730 the SEARCH commands searches for 'messages that
    # CONTAIN the specified string. When multiple keys are specified, the result
    # is the intersection (AND function) of all the messages that match those
    # keys.
    # _search_command = '(FROM ' + search + ')'
    # _search_command = '(SUBJECT "testmail" FROM ' + search + ')'
    _search_command = '(SUBJECT ' + search + ')'

    imapserver = imaplib.IMAP4_SSL(server, port)
    imapserver.login(login, password)
    imapserver.select()

    typ, data = imapserver.search(None, _search_command)
    for num in data[0].split():
        typ, data = imapserver.fetch(num, '(RFC822.HEADER)')
        print (data[0][1].decode())
        # Uncomment the following line if the listed files should also be
        # flagged for deletion
        # imapserver.store(num, '+FLAGS', '\\Deleted')
    imapserver.close()
    imapserver.logout()

del_imap(input("IMAP Server: "), 993, input("Username: "), getpass.getpass(), input("Search: "))

また、さらなる改善が行われるGithub-Gistも作成しました。https://gist.github.com/jkirk/39dc64747a9d78accde49de2e8dbdc6d

おすすめ記事