[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
Emacsでメッセージを送信するには、 まずコマンド(C-x m)を打って `*mail*'バッファを選択して初期化します。 続いて、このバッファでテキストとヘッダを編集し、 最後に別のコマンド(C-c C-sかC-c C-c)を 打ってメッセージを送信します。
compose-mail
)。compose-mail-other-window
)。compose-mail-other-frame
)。mail-send
)。mail-send-and-exit
)。 コマンドC-x m(compose-mail
)は、 `*mail*'という名前のバッファを選択し、 そのバッファ内に送信するメッセージの雛型を作ります。 C-x 4 m(compose-mail-other-window
)は、 別のウィンドウで`*mail*'バッファを選択し、 直前のカレントバッファは見えるようにしておきます。 C-x 5 m(compose-mail-other-frame
)は、 新たにフレームを作って`*mail*'バッファを選択します。
メイル作成バッファはEmacsの普通のバッファなので、 メイルを書いている途中で別のバッファに切り替えて あとで戻ってくる(あるいは戻らない)ことができます。 メッセージを書きかけのまま送信していないのに再度C-x mコマンドを使うと、 Emacsは古いメッセージを消してよいかどうか聞いてきます。 nと答えると、書きかけの古い内容の`*mail*'バッファが 選択されるので、古いメッセージを書き終えて送信できます。 C-u C-x mでもこのようにできます。 メッセージを送信すると`*mail*'バッファは『変更なし』と印が付けられ、 つぎにC-x mを使っても確認を求めないようにします。
`*mail*'バッファに書きかけのメッセージを残したまま 別のメッセージを送信したい場合には、 M-x rename-uniquelyを使って`*mail*'バッファを別の名前に 変更してください(see 節 O.3 その他のバッファ操作 (2004/07/16))。 そして、C-x mコマンドや他のコマンドで 新しい`*mail*'バッファを作ります。 こうすれば個々のメイルバッファを独立に編集できます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
メッセージにはテキスト、つまり、本文以外にも、 誰が、いつ、誰に、なぜ送ったかなどを示すヘッダフィールドがあります。 `Date'(日付)や`Sender'(送り手)などのヘッダフィールドは、 メッセージを送信するときに自動的に作成されます。 受け手(宛先)などの他のヘッダフィールドは、 メッセージがきちんと送信されるように あなた自身が指定する必要があります。
メイル(mail)モードには、 ヘッダフィールドを編集するためのコマンド群があり、 一部のヘッダフィールドはバッファ内で自動的に初期化されます。 通常の編集コマンドを使ってヘッダフィールドに挿入したり編集したりできます。
バッファ内のつぎの行は、ヘッダとテキストを分ける特別な区切り行です。
--text follows this line-- |
この行のあとに続くものはすべてメッセージのテキストになります。 このまえにあるものはヘッダです。 実際に送信されるメッセージには、この区切り行自身は含まれません。 区切り行として使うテキストは変数mail-header-separator
で制御します。
以下は、メイルバッファ内のヘッダとテキストの例です。
To: [email protected] CC: [email protected], [email protected] Subject: The Emacs Manual --Text follows this line-- Please ignore this message. |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
メイルバッファ内のヘッダフィールドは、 行頭のフィールド名で始まり、コロン`:'で区切られます。 フィールド名(およびメイルアドレス)では、 大文字小文字の区別はありません。 コロンと省いてもよい白文字のあとにフィールドの内容を書きます。
ヘッダフィールドには好き勝手にどんな名前でも使えますが、 一般にはきちんと意味のある標準的なフィールド名だけを使います。 以下は送信メッセージで一般的に使われるフィールドの一覧です。
すべての送信メッセージのブラインドカーボンコピーを自分自身に送るには、 変数mail-self-blind
にt
を設定する。
送信メッセージを編集するたびに毎回決まったファイル名を `FCC'フィールドに指定するには、 変数mail-archive-file-name
にそのファイル名を設定する。 送信メッセージから`FCC'フィールドを削除しない限り、 メッセージを送信するたびにこのファイルにメッセージが書き込まれる。
user-mail-address
の値を使う。
すべての送信メッセージの`Reply-to'フィールドに決まったアドレスを 指定するには、 変数mail-default-reply-to
に(文字列で)そのアドレスを設定する。 こうすると、mail
は指定された`Reply-to'フィールドを 付けてメッセージを初期化する。 メッセージを送信するまえに、 必要なら、このフィールドを削除したり変更したりできる。 Emacsが動き始めたときに環境変数REPLYTO
が設定されていれば、 その環境変数の値で変数mail-default-reply-to
を初期化する。
ヘッダフィールド、`To'、`CC'、`BCC'、`FCC'は、 いくつあってもよく、しかも、これらの各フィールドには コンマで区切って複数のアドレスを書けます。 こうすれば、メッセージの送付先をいくつでも指定できます。 `To'、`CC'、`BCC'フィールドでは継続行を使えます。 これらのフィールドに続く白文字で始まる行は、 すべてフィールドの一部であると見なします。 以下は継続行を用いた`To'フィールドの例です。
To: [email protected], [email protected], [email protected] |
メッセージを送信するときに、`From'フィールドを書いてないと、 Emacsがかわってこの項目を補います。 変数mail-from-style
でその書式を(以下のように)制御します。
nil
parens
angles
system-default
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
`~/.mailrc'という名前のファイルでメイルの別名 (mail alias)を定義できます。 メイルの別名とは、複数のメイルアドレスやそれらのグループに付けた 覚えやすい短い名前のことです。 他の多くのメイルプログラムと同様に、 `To'、`From'、`CC'、`BCC'、`Reply-to'のフィールドに 別名が現れるとEmacsは別名を展開し、 当該フィールドの先頭に`Resent-'を付加します。
`~/.mailrc'ファイルで別名を定義するには、 以下のような形式の行を書きます。
alias shortaddress fulladdresses |
fulladdressesは1つ以上のメイルアドレスであり、 shortaddressをそれらのアドレスに展開します。 複数のアドレスを書く場合は、空白で区切ります。 アドレスに空白が含まれる場合は、 アドレス全体をダブルクォート`"'で括ります。
たとえば、[email protected]
とあなたのローカルアドレスに対する別名を maingnu
とするには、 つぎのように書きます。
alias maingnu [email protected] local-gnu |
また、Emacsは`.mailrc'ファイル内の「取り込み」コマンドも認識します。 つぎのように書きます。
source filename |
ファイル`~/.mailrc'は主に他のメイル閲覧プログラムが使用するものです。 このファイルには、他にもさまざまなコマンドを指定できます。 Emacsは、このファイル内の別名定義(`alias')と 取り込みコマンド(`source')以外はすべて無視します。
Emacsの中だけでメイルの別名を定義する別の方法は、 define-mail-alias
コマンドを使うことです。 このコマンドは、別名と完全なアドレスを順次尋ねてきます。 これを使えば、つぎのようにして 個人の`.emacs'ファイルで別名を定義できます。
(define-mail-alias "maingnu" "[email protected]") |
define-mail-alias
は、 mail-aliases
という変数に別名を追加記録します。 Lispのリスト操作に慣れているなら、 mail-aliases
に直接設定してもかまいません。 変数mail-alias
の初期値はt
となっていて、 Emacsは`.mailrc'から別名定義を読み込むという指定です。
`~/.mailrc'のかわりに使う別のファイルの名前は、 変数mail-personal-alias-file
に設定します。
通常、Emacsはメッセージ送信時に別名を展開します。 送信に先だってみずからメイルアドレスを展開する必要はありませんが、 メイルが実際にどこへ送信されるか確認したければ別名を展開することもできます。 そうするには、コマンドM-x expand-mail-aliasesを使います。 アドレスを保持するメイルヘッダに書かれている すべてのメイルの別名を展開します。
もし好みに合うなら、メイルの別名を打ち込んだらただちに 略語展開することもできます(see 節 Y. 略語の利用法 (2004/01/12))。 この機能を使うにはつぎのようにします。
(add-hook 'mail-setup-hook 'mail-abbrevs-setup) |
これを個人の`.emacs'ファイルに入れてもかまいません。 See 節 AE.2.3 フック。 この機能を使う場合には、define-mail-alias
のかわりに define-mail-abbrev
を使う必要があります。 前者は、このパッケージでは動作しません。 メイル用略語パッケージでは、mail-aliases
のかわりに 変数mail-abbrevs
を使い、さらに、 すべての別名は小文字に変換されます。
メイル用略語パッケージには、C-c C-a (mail-interactive-insert-alias
)コマンドもあって、 別名を(補完を使って)読み取り、その定義をポイント位置に挿入します。 この機能は、Emacsが別名を通常展開しない本文や`Subject'フィールドなど を編集しているときに便利です。
単語の区切り文字を挿入したあとで略語が展開されることに注意してください。 しかし、C-nとM->を再定義して 展開が行われるように設定することもできます。 つぎのようにします。
(add-hook 'mail-setup-hook '(lambda () (substitute-key-definition 'next-line 'mail-abbrev-next-line mail-mode-map global-map) (substitute-key-definition 'end-of-buffer 'mail-abbrev-end-of-buffer mail-mode-map global-map))) |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
メイルバッファで使われるメジャーモードはメイル(mail)モードです。 テキスト(text)モードに似ていますが、 プレフィックスC-cで始まる多くの特別なコマンドがあります。 これらのコマンドはすべてメッセージの編集や送信に関するものです。 さらに、メイル(mail)モードでは、文字`%'を単語の切れ目と定義しています。 これは、単語コマンドを使ってメイルアドレスを編集するときに便利です。
mail
コマンドやそれに関連するコマンドが自動的に設定する バッファでは、普通、メイル(mail)モードを使います。 しかし、ファイルを訪問しているバッファをメイル(mail)モードに 切り替えることもできます。 これは、メッセージの草稿をファイルに保存してあるときなどに便利です。
AA.4.1 メイルの送信 Commands to send the message. AA.4.2 メイルヘッダの編集 Commands to move to header fields and edit them. AA.4.3 メイルの引用 Copying all or part of a message you are replying to. AA.4.4 その他のメイルモードコマンド Spell checking, signatures, etc.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
メイル(mail)モードには、編集したメッセージを送信するコマンドが2つあります。
mail-send
)。mail-send-and-exit
)。 C-c C-s(mail-send
)はメッセージを送信して メイルバッファに『変更なし』の印を付けます (変更フラグをクリアする)。 しかし、メッセージバッファは選択したままですから、 メッセージを修正して(新たな受け手に)再度送信できます。 C-c C-c(mail-send-and-exit
)はメッセージを送信してから、 ウィンドウを削除するか別のバッファに切り替えます。 メイルバッファは使い終えたので、 デフォルトではその選択優先度は最低になります。 普通はこのコマンドでメッセージを送信します。
ファイルを訪問しているバッファでは、メッセージ送信後でも変更フラグを クリアしません。 ファイルを保存した場合にだけ変更フラグをクリアすべきだからです。 この結果、同一メッセージを2回送信しようとしても警告は出ません。
非ASCII文字を含むメッセージを送信するときには、 それらをコーディングシステム(see 節 R.7 コーディングシステム) で符号化する必要があります。 通常、コーディングシステムは、 選択した言語環境(see 節 R.3 言語環境)によって 自動的に指定されます。 変数sendmail-coding-system
を設定すると、 送信メイルのコーディングシステムを明示できます。
このように決めたコーディングシステムが、 メッセージ内の文字を扱えない場合には、 Emacsは、可能なコーディングシステムの一覧を表示して、 使用するコーディングシステムを問い合わせます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
メイル(mail)モードには、特定のヘッダフィールドへ移動したり ヘッダのアドレスを補完する特別なコマンドがあります。
mail-to
)。mail-subject
)。mail-cc
)。mail-bcc
)。mail-fcc
)。mail-complete
)。ポイントを特定のヘッダフィールドに移動するコマンドは5つあって、 すべてプレフィックスC-c C-fで始まります (`C-f'は『フィールド』(fields)のf)。 これらは上に示してあります。 当該フィールドが存在しなければ、 これらのコマンドはそのフィールドを作成します。 これらの特定のフィールドに移動するコマンドを用意したのは、 これらのフィールドを編集する可能性が高いからです。
`To:'、`CC:'、`BCC:'などのメイルアドレスを含む ヘッダフィールドを編集中には、 M-TAB(mail-complete
)と打てば メイルアドレスを補完できます。 完全な名前が決定できるならば、アドレスに対応する完全な名前を挿入します。 変数mail-from-style
と同様に、 変数mail-complete-style
は、 完全な名前を挿入するのか、どのスタイルを使うのかを制御します (see 節 AA.2 メイルヘッダフィールド)。
補完のため使う正しいメイルアドレスは、 ローカルのユーザー名一覧と個人のメイルの別名からとられます。 正しいメイルアドレスの情報源を追加することもできます。 これに関するオプションを調べるには、カスタマイズバッファを使ってください。
メッセージの本文でM-TABと打つと、 テキスト(text)モードと同様にispell-complete-word
を起動します。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
メイル(mail)モードには、 返信対象であるメッセージの全部や一部をヤンク、つまり、引用(cite) するためのコマンドもあります。 こうしたコマンドはrmailコマンドを 使ってメッセージを送信する場合にだけ使えます。
mail-yank-original
)。mail-yank-region
)。mail-fill-yanked-message
)。rmailコマンドを使ってrmailメイルリーダからメイル送信を起動したときには、 C-c C-yを使って返信対象のメッセージをメイルバッファに挿入できます。 このコマンドは、引用メッセージの各行を空白3文字で字下げして ほとんどのヘッダフィールドを削除します。 数引数は字下げする文字数を指定します。 C-uだけを指定すると、字下げをせずにヘッダフィールドも削除しません。 C-c C-yは、つねにrmailバッファのカレントメッセージを使います。 したがって、rmailで1つメッセージを選択してから `*mail*'バッファに切り替えてヤンクし、 また、rmailに切り替えて別のメッセージを選択してというようにすれば、 複数の古いメッセージを挿入できます。
C-c C-yが各行の先頭に挿入する文字列は指定できます。 変数mail-yank-prefix
に望みの文字列を設定します。 (値がnil
だと字下げしない。デフォルトはこれ。) しかし、C-u C-c C-yと打った場合、 変数mail-yank-prefix
の値に関係なく、 各行の行頭には何も挿入しません。
届いたメイルの一部だけをヤンクするには、 rmailで目的の部分にリージョンを設定します。 そして`*mail*'バッファに移ってC-c C-r (mail-yank-region
)と打ちます。 コピーされる各行は、mail-yank-prefix
に従って 字下げされるか行頭に文字列が挿入されます。
C-c C-yやC-c C-rを使い終ったら、 C-c C-q(mail-fill-yanked-message
)と打てば ヤンクした古いメッセージを段落に詰め込めます (38)。 引用したメッセージを1つの段落に詰め込むには、M-qを使います。 詰め込み処理で行頭の文字を自動的に正しく扱えない場合には、 詰め込み接頭辞を陽に指定して試してください。 See 節 U.5 テキストの詰め込み。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
mail-text
)。mail-signature
)。mail-attach-file
)。 C-c C-t(mail-text
)は、 ポイントをヘッダの区切り行のあと、つまり、メッセージ文の先頭に移動します。
C-c C-w(mail-signature
)は、 あなたを識別するための決まり文句(サイン)をメッセージの末尾に追加します。 このテキストは、ホームディレクトリのファイル`~/.signature'から取ります。 このサインを自動的に挿入するようにするには、 変数mail-signature
にt
を設定します。 そうすると、メイルメッセージに自動的に ファイル`~/.signature'の内容が付加されます。 特定のメッセージにサインを付けたくなければ、 送信前にバッファ内で削除してください。
変数mail-signature
に文字列を指定することもできます。 すると、送信メッセージを編集し始めると、 その文字列はサインとして自動的に挿入されます。 この変数にそれ以外のLisp式を指定すると、 毎回その式が評価されその値(文字列であること)がサインになります。
コマンドM-x ispell-messageで、 書きあげたメッセージの綴りを訂正できます。 このコマンドは、引用部分については調べませんが、 あなた自身が打ち込んだテキストは検査します。 (字下げやmail-yank-prefix
を利用して、 引用部分とあなたの入力部分を区別します。) See 節 L.4 綴りの検査と訂正。
送信メッセージにファイルを付加するには、 カレントバッファにファイルを挿入する普通のコマンドC-x iを使います。 しかし、専用コマンドC-c C-i(mail-attach-file
) を使うほうがより便利なことがしばしばあります。 このコマンドは、指定したファイルの内容をバッファの最後、 サインがあればそのうしろに、ファイル名を含んだ区切り行を付けて挿入します。
(C-x mが自動的に行うように)メイル(mail)モードをオンにすると、 ノーマルフック、text-mode-hook
とmail-mode-hook
とが 実行されます。 新たな送信メッセージを初期化するときには、 ノーマルフックmail-setup-hook
を実行します。 メイルヘッダに特別なフィールドを追加したり メイルバッファの外見を変えたいならば、これらのフックを使ってください。 See 節 AE.2.3 フック。
これらのフックの主な違いは、どの時点で起動されるかです。 M-x mailと打鍵すると、`*mail*'バッファを作成後ただちに mail-mode-hook
が実行されます。 続いてmail-setup
関数がバッファにデフォルトの内容を入れます。 そのあとで、mail-setup-hook
が実行されます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
M-x spookは、ランダムに選んだキーワードから成る行を 送信メッセージに付け加えます。 破壊活動を画策していると思わせるような単語の一覧表からキーワードを選びます。
この機能の思想的背景には、NSA (39) は自分たちが関心を持つ特定のキーワードを 含んだすべての電子メイルを盗聴(盗読?)しているのではないかという 疑いがあります。 (NSAは否定していますが、彼らなら当然そういい張るだろう。) 多くの人々が怪しい単語をメッセージに付加しておけば、 NSAはこうした疑わしいメイルの盗聴で非常に忙しくなり、 おしまいにはこうした行為を止めるのではないかと考えたからです。
以下は、送信メッセージを編集し始めると 自動的に怪しいキーワードを付け加える方法です。
(add-hook 'mail-setup-hook 'spook) |
これでNSAが混乱してもしなくても、 少なくとも人々を楽しませることができます。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |
本章では、メイルを編集/送信するためのEmacsの通常のモード、 メイル(mail)モードについて説明してきました。 本書ではふれていませんが、 MH-Eやメッセージ(message)モードを含む 別のメイル編集/送信機能もEmacsにはあります。 コマンド、C-x m
、C-x 4 m
、C-x 5 m
は、 指定されたどの方式にも対応しています。 ですから、メイルを送信するEmacsのさまざまなコマンドや機能を利用できます。
メイル作成方式を指定するには、変数mail-user-agent
を設定します。 現時点で正しい設定として認められるものは、 sendmail-user-agent
、mh-e-user-agent
、 message-user-agent
です。
異なるメイル作成方式を選択すると、本章で述べた`*mail*'バッファや メイル(mail)モードについての説明は役に立ちません。 異なったメイル作成方式では、 異なった名前のバッファで異なった形式の まったく異なったコマンドを使うかもしれないからです。
[ << ] | [ >> ] | [表紙] | [目次] | [索引] | [検索] [上端 / 下端] [?] |