/mournmail

A message user agent for Textbringer

Primary LanguageRubyMIT LicenseMIT

Mournmail

Mournmail is a message user agent for Textbringer.

Installation

$ gem install mournmail

Configuration

CONFIG[:mournmail_accounts] = {
  "example.com" => {
    from: "Shugo Maeda <shugo@example.com>",
    delivery_method: :smtp,
    delivery_options: {
      address: "smtp.example.com",
      port: 465,
      domain: Socket.gethostname,
      user_name: "shugo",
      password: File.read("/path/to/smtp_passwd").chomp,
      authentication: "login",
      tls: true,
      ca_file: "/path/to/ca.pem"
    },
    imap_host: "imap.example.com",
    imap_options: {
      auth_type: "PLAIN",
      user_name: "shugo",
      password: File.read("/path/to/imap_passwd").chomp,
      ssl: { ca_file: "/path/to/ca.pem" }
    },
    spam_mailbox: "spam",
    outbox_mailbox: "outbox",
    archive_mailbox_format: "archive/%Y",
    signature: <<~EOF
      -- 
      Shugo Maeda <shugo@example.com>
    EOF
  },
  "gmail.com" => {
    from: "Example <example@gmail.com>",
    delivery_method: :smtp,
    delivery_options: {
      address: "smtp.gmail.com",
      port: 587,
      domain: Socket.gethostname,
      user_name: "example@gmail.com",
      password: File.read("/path/to/gmail_passwd").chomp,
      authentication: "login",
      enable_starttls_auto: true
    },
    imap_host: "imap.gmail.com",
    imap_options: {
      auth_type: "PLAIN",
      user_name: "example@gmail.com",
      password: File.read(File.expand_path("~/.textbringer/gmail_passwd")).chomp,
      ssl: true
    },
    spam_mailbox: "[Gmail]/迷惑メール",
    archive_mailbox_format: false
  },
}

Usage

Type M-x mail to send a mail.

Type M-x mournmail to visit INBOX.

Key bindings

Summary

Key Command Description
s mournmail_summary_sync Sync summary. With C-u sync all mails
SPC summary_read_command Read a mail
C-h summary_scroll_down_command Scroll down the current message
n summary_next_command Display the next mail
w summary_write_command Write a new mail
a summary_reply_command Reply to the current message
A summary_reply_command Reply to the current message
f summary_forward_command Forward the current message
u summary_toggle_seen_command Toggle Seen
$ summary_toggle_flagged_command Toggle Flagged
d summary_toggle_deleted_command Toggle Deleted
x summary_toggle_mark_command Toggle mark
* a summary_mark_all_command Mark all mails
* n summary_unmark_all_command Unmark all mails
* r summary_mark_read_command Mark read mails
* u summary_mark_unread_command Mark unread mails
* s summary_mark_flagged_command Mark flagged mails
* t summary_mark_unflagged_command Mark unflagged mails
y summary_archive_command Archive mails. Archived mails will be deleted or refiled from the server, and only shown by summary_search_command
o summary_refile_command Refile marked mails
! summary_refile_spam_command Refile marked mails as spam
p summary_prefetch_command Prefetch mails
X summary_expunge_command Expunge deleted mails
v summary_view_source_command View source of a mail
M summary_merge_partial_command Merge marked message/partial
q mournmail_quit Quit Mournmail
k previous_line Move up
j next_line Move down
m mournmail_visit_mailbox Visit mailbox
S mournmail_visit_spam_mailbox Visit spam mailbox
/ summary_search_command Search mails
t summary_show_thread_command Show the thread of the current mail
@ summary_change_account_command Change the current account

Message

Key Command Description
RET message_open_link_or_part_command Open link or MIME part
s message_save_part_command Save the MIME part
TAB message_next_link_or_part_command Go to the next link or MIME part

Draft

Key Command Description
C-c C-c draft_send_command Send a mail
C-c C-k draft_kill_command Kill the draft buffer
C-c C-x TAB draft_attach_file_command Attach a file
C-c C-x v draft_pgp_sign_command PGP sign
C-c C-x e draft_pgp_encrypt_command PGP encrypt
C-c TAB insert_signature_command Insert signature
C-c @ draft_change_account_command Change account
TAB draft_complete_or_insert_tab_command Complete a mail address or insert a tab

Development

After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/shugo/mournmail.

License

The gem is available as open source under the terms of the MIT License.