この質問は提案どおりにコピーされました。これ 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