diff --git a/README.md b/README.md index 859f531..73e97c6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,95 @@ # pymailer -Very simple CLI email client written in Python \ No newline at end of file +A very simple CLI mail client written in Python. Written to fulfil some specific requirements I had for automated mail server testing. + +Relies on Python's built in `smptlib` for sending mails, and [IMAPClient](https://pypi.org/project/IMAPClient/) for inbox actions. + +Pymailer can +- Send an email via SMTP +- Connect to an inbox via IMAP and + - List emails + - Search for emails + - Delete emails that match search criteria + +## Usage + +``` +usage: pymailer [-h] {send,message_list,message_search,message_delete} ... + +Simple mail client for sending emails, and checking and manipulating an inbox + +optional arguments: + -h, --help show this help message and exit + +subcommands: + {send,message_list,message_search,message_delete} + available subcommands + send send an email + message_list lists all messages in an inbox via IMAP + message_search search an inbox for messages via IMAP + message_delete deletes messages in an inbox via IMAP +``` +``` +usage: pymailer send [-h] --smtp_host SMTP_HOST --smtp_user SMTP_USER --smtp_password SMTP_PASSWORD --from_addr FROM_ADDR --to_addr TO_ADDR --subject SUBJECT --body BODY [--debug_level {0,1,2}] + +optional arguments: + -h, --help show this help message and exit + --smtp_host SMTP_HOST + SMTP server hostname + --smtp_user SMTP_USER + SMTP server logon username + --smtp_password SMTP_PASSWORD + SMTP server logon password + --from_addr FROM_ADDR + Address to send email from + --to_addr TO_ADDR Address to send email to + --subject SUBJECT Email subject + --body BODY Email body + --debug_level {0,1,2} + Debug level, higher number is more verbose +``` +``` +usage: pymailer message_list [-h] --imap_host IMAP_HOST --imap_user IMAP_USER --imap_password IMAP_PASSWORD [--folder FOLDER] + +optional arguments: + -h, --help show this help message and exit + --imap_host IMAP_HOST + IMAP server hostname + --imap_user IMAP_USER + IMAP server logon username + --imap_password IMAP_PASSWORD + IMAP server logon password + --folder FOLDER Inbox folder +``` +``` +usage: pymailer message_search [-h] --imap_host IMAP_HOST --imap_user IMAP_USER --imap_password IMAP_PASSWORD [--folder FOLDER] --search_string [SEARCH_STRING ...] + +optional arguments: + -h, --help show this help message and exit + --imap_host IMAP_HOST + IMAP server hostname + --imap_user IMAP_USER + IMAP server logon username + --imap_password IMAP_PASSWORD + IMAP server logon password + --folder FOLDER Inbox folder + --search_string [SEARCH_STRING ...] + Search string e.g 'FROM' 'user@example.com'. Space separated +``` +``` +usage: pymailer message_delete [-h] --imap_host IMAP_HOST --imap_user IMAP_USER --imap_password IMAP_PASSWORD [--folder FOLDER] --search_string [SEARCH_STRING ...] [--dry_run {true,false}] + +optional arguments: + -h, --help show this help message and exit + --imap_host IMAP_HOST + IMAP server hostname + --imap_user IMAP_USER + IMAP server logon username + --imap_password IMAP_PASSWORD + IMAP server logon password + --folder FOLDER Inbox folder + --search_string [SEARCH_STRING ...] + Search string for emails that will be deleted e.g 'FROM' 'user@example.com'. Space separated + --dry_run {true,false} + List emails that will be deleted, but don't delete them +``` \ No newline at end of file