送信エラー: Missing Sender or Recipient(KaMail)

問題

ある日のことだ.いつものようにkamailを起動してメールを受信するとエラーが出た.メッセージの内容は“送信エラー: Missing Sender or Recipient”.以下のようなダイアログが出る.

Missing Sender or Recipient

このエラーの出るタイミングは

  1. kamailを起動(カーソルはフォルダビュー)
  2. メールを受信開始(メニューバーのKaMail→取込→メール全取込 or キーiを押す)
  3. メールを受信してエラー発生

である.原因を解明しよう.

なお,xyzzy/KaMailの設定ファイルやパスは以下のように表記する.

xyzzyインストールディレクトリ
${XYZZY_HOME}
KaMailの設定ファイル .kamail
${XYZZY_HOME}/KaMail/.kamail

原因

結論から先に言うと,原因はキューフォルダ内に送信できないメールがあったためである.例えばTo:にメールアドレスが入っていないメールがキューフォルダにある場合,該当メールは送信できないのでこのエラーが発生する.

対応その1

KaMailのフォルダビューの中に+queueフォルダがあったら,その中にあるメールを確認して書きかけのメールを書き上げるか,問題のメールは削除しよう.

キューフォルダは${XYZZY_HOME}/KaMail/.kamailの中に定義がある.名前を変えている場合は,この中身を確認しよう.こんな記述があるはずだ.

;送信前フォルダ
(setq *kamail-queue-folder* "+queue")

+queueが別の名前になっていたら,それがキューフォルダである.

対応その2

なお,KaMailのフォルダビューには+queueフォルダがない場合でも,このエラーは発生する.キーボードショートカットを打ち間違えてキューフォルダに入ってしまったような場合に発生する.メールボックスに指定したディレクトリをエクスプローラで確認しよう.メールボックスの場所は${XYZZY_HOME}/KaMail/.kamailの中に定義がある.

;ローカルのメールフォルダへのパス
(setq *kamail-local-directory*
  (merge-pathnames "Mail" "c:/Documents and Settings/foo/My Documents/mailbox/"))

キューフォルダの名前が+queueだったら,以下のディレクトリに送信前のメールがある.

c:/Documents and Settings/foo/My Documents/mailbox/queue

KaMailのフォルダビューに+queueフォルダがないわけだから,キューフォルダにあるメールは全ていらないものだと思う..kamail-cacheごと消してしまおう..kamail-cacheは自動でできるので気にする必要はない.