Linux Inside に戻る

impost (imput) を使って Mail/News を送ろう


 News/Mail を持って来る設定というのは比較的楽にできますが、送る方といっ たら結構苦労するのではないでしょうか。ここでは非常に簡単な設定で Mail/News を送ることができる impost というソフトを紹介します。

1. 用意するもの

impost-0.99i
perl で書かれた sendmail や inews のふりをするソフトです。(って言った ら語弊がある?)

Gnus/GNUS をお使いの方は以下のものもあった方が良いでしょう

tm-7.106
Emacs で MIME を使うセットです。ここでは gnus-mime, tm-gnus を利用させ ていただきます。

2. 準備

2.1. impost のインストール

 impost を PATH の通ったところにコピーします。また impost の
          && !&header_value("Path")
という行をコメントアウトしてください。これは mnews が Path: を付け てしまうことに対処したものです。

2.2. tm のインストール(Gnus/GNUS をお使いの場合)

 ドキュメント通りにインストールします。GNUS の方は tm-gnus を、Gnus の方は gnus-mime を忘れずにインストールします。gnus-mime の場合、 gnus-charset.el の 126 行目以降に以下の行を追加して下さい。

  (gnus-set-newsgroup-default-charset "tnn"     'iso-2022-jp-2)
  (gnus-set-newsgroup-default-charset "japan"   'iso-2022-jp-2)
  ; Nifty4U? をお使いの場合。その際 rnews には JIS で噛ませて下さい。
  (gnus-set-newsgroup-default-charset "nifty"   'iso-2022-jp-2)

3. 各設定ファイルを書く

.impostrc(cf:私の .impostrc
-- .impostrc -------------------------------------
 config: default
 option: -smtpservers smtp.hoge.or.jp
 option: -nntpservers news.hoge.or.jp
 option: -fromdomain hoge.or.jp
 option: -user foo
 option: -org HogeHoge Inc.
 option: -lines 3000
 option: -noesmtp
 option: -noMsgId
 option: -justqueuing
 option: -ObeyHeade
 option: -NewsGMTdater
 option: -newspost
 option: -noNewsCheck
 option: -h

 config: post
 option: -verbose
 option: -processqueue
--------------------------------------------------
.emacs(Gnus/GNUS/Mew をお使いの場合)
長くなるので impost に関係の ある部分だけです。
(cf:私の .emacs, .gnus, .mew

-- .emacs ----------------------------------------
;;; tiny MIME
(load-library "mime-setup")

;;; Mew
 .....
;; MH の send は使わず impost を使う
(setq mew-prog-send "impost")
;; これをつけないと reply のとき自分に Cc: される
(setq mew-mail-domain "hoge.or.jp")

;;; Gnus
 .....
;; 自分の本当の(公式の)メールアドレス(Gnus 5.4.x 以降?)
(setq user-mail-address "foo@hoge.or.jp")
; Gnus 5.3.x 以前はこうかな?
(setq gnus-user-from-line "Masahito Ohtsuka <foo@hoge.or.jp>")
; GNUS ではこう
(setq gnus-user-login-name "foo")
(setq gnus-local-domain "hoge.or.jp")

;; Massage-ID はいらない
(setq message-required-news-headers
'(From Newsgroups Subject
  (optional . Organization) Lines (optional . X-Newsreader)))

;; Mail でも Message-ID は要らない(Gnus 5.4.5x 以降?)
(setq message-required-mail-headers
'(From Subject Date (optional . In-Reply-To) Lines
		(optional . X-Mailer)))

(setq gnus-required-headers              ; GNUS/Gnus 5.3 以前
 '(From Newsgroups Subject Organization Lines X-Newsreader))

;; Sender: ヘッダをつけない(Gnus 5.4.x	以降のみ?)
(setq message-syntax-checks
      '((long-lines . disabled)
        (control-chars . disabled)
        (sender . disabled)              ; ここがポイント
        ))

;; inews を impost にやらせる
(setq gnus-post-method '(nnspool ""))
(setq nnspool-inews-program "impost")
(setq nnspool-inews-switches '("-h"))

;; sendmail 起動のプログラムも impost で post する
(setq sendmail-program "impost")
--------------------------------------------------

4. mnews + impost(imput)で投稿する方法

 ちょっとやってみたところ mnews でも News/Mail の投稿が出 来ましたので、方法を書いておきます。ただし mnews を make しなおす必要 があります。

config.jsh する時に

ニュース投稿プログラムとオプション(デフォルト:/usr/lib/news/inews -h):/usr/local/bin/impost
メール送信プログラムとオプション(デフォルト:/usr/lib/sendmail -t -om-oi):/usr/local/bin/impost
などとそれぞれ答えます。またコンパイルオプションで - DLOCAL_POST を追加し、メール送信モードは MTAP を指定します。 冒頭にも書きましたが impost の以下の行を削除(コメントアウト)します
          && !&header_value("Path")

5. 実際にポストしてみる

 ニュースリーダーで News をポストします。その際 ~/.imqueue/ に、書い た Mail/News がうまくキューイング出来ているかどうか確認します。

 とくに注意するものは From: と Message-ID: です。From: は公式な自分の メールアドレスになっているか、Message-ID: は付いていないかを確 認して下さい。

 この方法でポストするには Message-ID: を消すことが肝要なのですが、ニュー スリーダーのなかには Message-ID: を消すことが出来ないものがあります。 そのような場合には転送する前に以下のようなスクリプトを走らせると良いで しょう。Sender: に local な(公式でない)Mail address が入ってしまう場 合にも有効です。
   #!/usr/bin/perl -i
   @ARGV = <~/.imqueue/*>;
   while (<>) {
       print unless /^(Message-ID|Sender): /;
   }
確認が出来たら
 impost -config post
で、転送です。あらかじめ PPP connection を張っておくのをお忘れなく

 tm を使わない運用も可能だとは思いますが、うちではキューイングされた Mail/News が文字化けを起こしてしまいます。しかし、MIME なヘッダが見れ るのでインストールしない手は無いでしょう。(^_^)

 とりあえず自分の場合うまくいっていますが、もし間違いがあったら指摘し てやって下さい。

Linux Inside に戻る


おおつかまさひと(negi@KU3G.org)
Last modified: Mon May 25 05:15:51 JST 1998