Open the directory in dired with C-x 4 d and type M-x turn-on-gnus-dired-mode. Then mark the required files with m (or whatever) and type C-c RET C-a. The files can now be attached to an already opened message buffer or assigned to a new one.
I can only suggest a solution for gnus and dired but it is at least easier as lawlist suggested. Open the directory in dired with C-x 4 d and type M-x turn-on-gnus-dired-mode. Then mark the required files and type C-c RET C-a. That's it and the files can be attached to an already opened or a new message buffer (I'm not sure if this works for other MUAs as ...
One way is to hook into message-send-hook:
message-send-hook is a variable defined in ‘message.el’.
Its value is nil
This variable may be risky if used as a file-local variable.
Hook run before sending messages.
This hook is run quite early when sending.
(defun my-confirm-empty-subject ()
"Allow user to quit when current ...
What you need to do is write a new interactive function that receives the optional prefix argument and runs either the "insert here" or "insert at bottom" functions. For your function to receive the prefix, it needs to have (interactive "P"). A single C-u prefix will be received as the list (4). Below is the general sort of thing you have to do.
Look in the Field Menu and select those fields. For me, the key shortcuts are C-c C-f C-c for CC and C-c C-f C-b for BCC. These will add those fields.
Alternatively, I think you can just type them in yourself in the header, e.g. after the To: line, press enter, type Cc: and a space then add the email address you want.
The intended way to achieve Gmail-style citations is the following:
(setq message-cite-style message-cite-style-gmail))
Inspecting the value and documentation of the alist message-cite-style-gmail provides further insight into the involved settings:
I like to use helm-find-files for this. You navigate to where the files are, mark the ones you want with C-spc, and attach them with C-c C-a (or press tab and find the attach files to email action).
The ivy equivalent of this is counsel-find-file. First, add this action to it:
'(("a" (lambda (x)
(unless (memq ...
If I understood correctly, you are looking for the command message-fill-yanked-message, which is bound to C-c C-q in message-mode by default. See the Message Manual node on Insertion for a brief description of this command, including a caveat.
In fact, message-mode is so powerful and flexible that I recommend reading its whole manual, which is relatively ...
I use counsel-bbdb but company-bbdb is also enabled.
To insert multiple mail address:
Just press C-M-n in the candidates window. It's built in feature of ivy-mode which counsel-bbdb is dependent on.
So is it possible to use message mode without a header?
Would narrowing to the body work in your use case? See (info "(emacs) Narrowing"). For example, you could C-c C-b (message-goto-body), C-SPC (set-mark-command), M-> (end-of-buffer), C-x n n (narrow-to-region). To undo the narrowing, you could C-x n w (widen).
Here's a command that does ...
I GOT IT!!!
(setq message-cite-style message-cite-style-gmail)
(setq message-citation-line-function 'message-insert-formatted-citation-line))
The message-citation-line-function was the absolute key to this.
EDIT: Still seeing that sometimes gmail replies are fine, and other times they aren't. It's very inconsistent. In ...
With the default settings M-q effectively calls function message-fill-paragraph in message-mode. message-fill-paragraph acts differently for the header part and the rest of the message. The fill adds extra whitespace at the beginning of lines. The separation of the parts is given by the string given by the customizable variable mail-header-separator which ...
for some reason it gets stuck at the end of the From: line and won't advance further to the message body
The docstrings of user option message-tab-body-function:
Function to execute when ‘message-tab’ (TAB) is executed in the body.
If nil, the function bound in ‘text-mode-map’ or ‘global-map’ is executed.
and command message-tab:
Old post but I got here having the same basic desire and rolled my own
snippet to solve it. For others coming here this might be something
(defun compose-attach-marked-files ()
"Compose mail and attach all the marked files from a dired buffer."
(let ((files (dired-get-marked-files)))
(compose-mail nil nil nil t)
You can do a generic scan for any Gnus backend. Look at gnus-group-get-new-news-this-group:
gnus-group-get-new-news-this-group is an interactive compiled Lisp
function in `gnus-group.el'.
(gnus-group-get-new-news-this-group &optional N DONT-SCAN)
Check for newly arrived news in the current group (and the N-1 next groups).
The difference between N and ...