Giter Site home page Giter Site logo

madearl / org-msg Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jeremy-compostella/org-msg

0.0 1.0 0.0 72 KB

OrgMsg is a GNU/Emacs global minor mode mixing up Org mode and Message mode to compose and reply to emails in a Outlook HTML friendly style.

License: GNU General Public License v3.0

Emacs Lisp 100.00%

org-msg's Introduction

OrgMsg is a GNU/Emacs global minor mode mixing up Org mode and your Mail User Agent Mode (Message mode or mu4e mode) to compose and reply to emails in a Outlook HTML friendly style.

https://melpa.org/packages/org-msg-badge.svg

Presentation

Not that I really like the Outlook email style but in a work environment dominated by this software, it is good to be able to reply with the same style. By default, if the original message is in text form OrgMsg keeps it that way and does not activate itself. It allows to reply to developer mailing list (or any real technical people who knows how to handle text email) seamlessly. If the original message is in the HTML form, it activates the OrgMsg mode on the reply buffer.

OrgMsg provides a org-msg-edit-mode which is an derivation of Org mode in which some functionality of the current Mail User Agent (Message mode or mu4e mode) are imported or replicated. For instance, a OrgMsg buffer uses the same font-lock-keywords than Message mode or the TAB key while the cursor is in the header calls the message-tab function.

For convenience, the original message is quoted below the --citation follows this line (read-only)-- marker. So you can easily refer to the original message. However, the entire quoted text is read-only because OrgMsg does not support modification of the original content.

OrgMsg has a mechanism to support different Mail User Agents (message, mu4e, …). Each function which depends on the Mail User Agent calls org-msg-mua-call function which is an indirection to the OrgMsg Mail User Agent specific function.

Outlook email are really poor compared to what can be achieved by Org mode. I personally use the #+{begin|end}_quote to quote part of the email I am replying to. I extensively make use of #+{begin|end}_src mode to provide extract of code or example of changes, I sometimes use Org babel to generate an on the fly sequence diagram (using plantuml) or a simple graph (using dot).

Keys and interactive functions

The OrgMsg mode keys are the usual key combination used in either Org mode or Message mode.

  • C-c C-e – calls org-msg-preview, it generates the final HTML email, save it into a temporary file and call the browse-url function on that file.
  • C-c C-k – calls message-kill-buffer
  • C-c C-s – calls message-goto-subject (same as in Message mode)
  • C-c C-b – calls org-msg-goto-body (similar to message-goto-body in Message mode)
  • C-c C-a – calls org-msg-attach, very similar to the org-attach function. It lets you add or delete attachment for this email. Attachment list is stored in the :attachment: property.
  • C-c C-c – calls org-ctrl-c-ctrl-c. OrgMsg configures org-msg-ctrl-c-ctrl-c as a final hook of Org mode. When org-msg-ctrl-c-ctrl-c is called in a OrgMsg buffer it generates the MIME message and send it.

The org-msg-mode interactive function can be called to enable/disable OrgMsg. By default, once the module is loaded, it is disable. If you want to reply to an email without making use of OrgMsg, you should call that function before you call the reply-to function.

To start composing a new OrgMsg email, you can call the interactive message-mail function. If your mail-user-agent is message-user-agent (which is the by default Emacs configuration), compose-mail calls message-mail and is bound to [C-x m] by default.

Configuration

OrgMsg depends on this module: emacs-htmlize

(require 'org-msg)
(setq org-msg-options "html-postamble:nil H:5 num:nil ^:{} toc:nil")
(setq org-msg-startup "hidestars indent inlineimages")
(setq org-msg-greeting-fmt "\nHi %s,\n\n")
(setq org-msg-greeting-fmt-mailto t)
(setq org-msg-signature "

Regards,

#+begin_signature
-- *Jeremy* \\\\
/One Emacs to rule them all/
#+end_signature")
(org-msg-mode)

The org-msg-greeting-fmt can be customized to configure the default greeting message. If this format contains a %s token it is automatically replaced with the first name of the person you are replying to. If org-msg-greeting-fmt-mailto is t, the first name it is formatted as mailto link.

In order to avoid CSS conflict, OrgMsg performs inline replacement when it generates the final HTML message. See the org-msg-enforce-css variable to customize the style (and the default org-msg-default-style variable for reference).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.