2

複数の電子メールアカウントをサポートするためにRMAILとEmacsを準備しようとしています。電子メールのFromフィールド( EmacsWikiの情報に基づく)に基づいてさまざまなSMTPサーバーを使用するソリューションはすでにありますが、現在、Fromフィールドを手動で設定する必要があります。

私が欲しいのは、RMAILの誰かに返信するとき(つまり、account1 @ example.netに配信された電子メールに返信するとき、composeメッセージバッファのFromをaccount1@example.netに設定するとき)に自動的にFromフィールド設定することです。私はメッセージパッケージをとして使用します。Gnusには、と呼ばれる同様の機能があります。mail-user-agentgnus-posting-styles

私が必要としているのは、正確には次のようなものです。

  1. rまたはM-x rmail-replyRMAILサマリーを押すと、フィールド、、、または返信メッセージのaccount1@example.netまたはaccount2@example.netを探し、最初見つかったメッセージを変数に保存します。ToCcEnvelope-ToX-Origintal-ToDelivered-To

  2. 電子メールを作成するためにすでにメッセージバッファにある場合は、[差出人]フィールドを以前に保存された値に自動的に設定します。

1を実行する方法はありますか?

ありがとうございました!

4

1 に答える 1

3

はい、これを行う方法があります。

関数にアドバイスする必要がありますrmail-reply

次に例を示します。

(defadvice rmail-reply(rmail-grab-to-field周辺)
  「Toフィールドを取得し、「From」として返信を入力します。」
  (let((ori​​gin-to(mail-fetch-field "to")))
    (progn
      ad-do-it)
    (保存エクスカーション
      (goto-char(point-min))
      (実行-置換
       "^ From:\\(。* \\)$"
       (concat "From:" origin-to)
       nil t nil 1 nil(point-min)(point-max)))))

(ad-activate'rmail-reply)

アドバイスについては、EmacsLispのマニュアルですべて知ることができます。

上記のアドバイスは完全に一般的なものではなく、メールの送信に使用するモードに少し依存します(私はメッセージモードを使用しており、そのために上記のコードが機能します)。

perform-replaceより良いバージョンでは、メールヘッダー内の何かを変更することしかできないように、範囲を区切ることもできます。

于 2013-02-25T10:33:36.640 に答える