A simple email client for Vim.
Iris is a simple email client for Vim, inspired by (Neo)Mutt and Alpine.
(Neo)Mutt and Alpine are very good terminal email clients, but they lack of Vim mappings. You can emulate, but it requires a lot of time, patience and configuration. Why trying to emulate, when you can have it in Vim? VimScript and Python are strong enought to do so. I hope you will enjoy it, feel free to contribute!
:Iris
If it's your first connection, you will be prompted your IMAP password, then your SMTP password (this last one can be skipped, the IMAP password will be used instead).
:IrisFolder
Function | Keybind |
---|---|
text preview | <Enter> |
html preview | gp (for go preview ) |
new email | gn (for go new ) |
change folder | gf (for go folder ) |
Function | Keybind |
---|---|
reply | gr (for go reply ) |
reply all | gR (for go reply all ) |
forward | gf (for go forward ) |
Function | Keybind |
---|---|
save draft | :w |
send | gs (for go send ) |
Define your name:
g:iris_name = <string>
Default: Iris
Define your email address:
g:iris_email = <string>
Default: iris@localhost
Define host:
g:iris_imap_host = <string>
Default: localhost
Define port:
g:iris_imap_port = <number>
Default: 993
Define login:
g:iris_imap_login = <string>
Default: user
Define host:
g:iris_smtp_host = <string>
Default: same as g:iris_imap_host
Define port:
g:iris_smtp_port = <number>
Default: 587
Define login:
g:iris_smtp_login = <string>
Default: same as g:iris_imap_login
- List emails from INBOX
- Preview
text/plain
emails - Preview
text/html
emails in browser - Set imap server as daemon (via sockets)
- Send a new email
- Reply to an email
- Forward email
- List and change folder (mailbox)
- Support Vim8+
- Save password in GPG encrypted file
- Add list pagination
- Preview / download attachments
- Delete emails
- Cache emails
- Cache contacts
- Auto-complete contacts to, cc, bcc
- Fetch new emails in background (idle mode)
- Save draft on server (instead of Vim memory)
- Manage more than one account
- Setup thread view
- Support Gmail labels
Git commit messages follow the Angular Convention, but contain only a subject.
Use imperative, present tense: “change” not “changed” nor “changes”
Don't capitalize first letter
No dot (.) at the end
Code should be as clean as possible, variables and functions use the snake case
convention. A line should never contain more than 80
characters.
Tests should be added for each new functionality. Be sure to run tests before proposing a pull request.
- Python lib imapclient
- Class IMAPClient
- Example
- Idle example
- IMAP RFC3501