2

我正在尝试准备 RMAIL 和 Emacs 以支持多个电子邮件帐户。我已经有了一个解决方案,可以根据电子邮件的From字段(基于EmacsWiki中的信息)使用不同的 SMTP 服务器,但我目前必须手动设置From字段。

我想要的是在回复 RMAIL 中的某人时自动设置From字段(即在回复发送到account1@example.net的电子邮件时,将撰写消息缓冲区中的From设置为account1@example.net)。我使用 Message 包作为. Gnus 有一个类似的特性,叫做.mail-user-agentgnus-posting-styles

确切地说,我需要的是如下所示:

  1. 当在 RMAIL 摘要上按r或时,在回复消息的 、 、或字段中查找account1@example.netaccount2@example.net并将找到的第一个存储在某个变量中;M-x rmail-replyToCcEnvelope-ToX-Origintal-ToDelivered-To

  2. 已经在消息缓冲区上撰写电子邮件,自动将 From 字段设置为先前存储的值。

有没有办法执行1?

谢谢!

4

1 回答 1

3

是的,有办法做到这一点。

您需要建议该功能rmail-reply

这是一个例子:

(defadvice rmail-reply(围绕 rmail-grab-to-field)
  “抓住收件人字段并将回复输入为'发件人'。”
  (let ((origin-to (mail-fetch-field "to"))))
    (预测
      做它)
    (保存游览
      (goto-char (point-min))
      (执行替换
       “^来自:\\(.*\\)$”
       (连接“发件人:”始发地)
       nil t nil 1 nil (point-min) (point-max)))))

(ad-activate 'rmail-reply)

您可以在 EmacsLisp 手册中找到有关建议的所有信息。

上面的建议并不完全通用,它在一定程度上取决于您用于发送邮件的模式(我使用消息模式并且上面的代码有效)。

一个更好的版本也将划定范围,perform-replace以便它只能更改邮件标题中的某些内容。

于 2013-02-25T10:33:36.640 回答