Q. mnews の MH モードで、pop サーバからメールを取り込むことができませ
ん。どうすればよいのでしょうか。
A. POP3 サーバ、あるいは APOP サーバからメールを取得しようとしていま
せんか? その場合、「ユーザの入力が不要な inc」が実行できるように
.netrc などに設定を加える必要があります。具体的には次のようにします。
1. mnews の設定ファイル ${HOME}/.mnews_setup ファイルに以下を追加します:
mh_mode: on
msgchk_rule: 2
2. POP3 サーバからメールを取得する場合は、MH の設定ファイル
${HOME}/.mh_profile に以下を追加します:
inc: -norpop -noapop -host pop-hostname -user pop-account
msgchk: -norpop -noapop -host pop-hostname -user pop-account
APOP サーバからなら、次のようにします:
inc: -apop -host pop-hostname -user pop-account
msgchk: -apop -host pop-hostname -user pop-account
ここで pop-hostname には POP3/APOP サーバ名、pop-account には POP3/APOP
アカウント名を記述します。
3. MH の inc, msgchk コマンドを問い合わせなしで実行するため、
${HOME}/.netrc ファイルを作成し、以下の記述を加えます。
machine pop-hostname
login pop-account
password pop-password
pop-hostname には POP3/APOP サーバ名、pop-account には POP3/APOP アカ
ウント名、pop-password には POP3/APOP パスワードを記述します。
上記のように、$HOME/.netrc ファイルには生のパスワードが記述さ
れるため、その取り扱いには細心の注意を払って下さい。他のユーザーに読ま
れないように、ファイルのモードは 600 にしておきます。
% chmod 600 $HOME/.netrc
以上の設定でメールを取り込んで読むことができるようになるでしょう。
なお、mnews 1.21 は環境変数 MH による設定ファイル (.mh_profile) 切り替え
には対応していません。対応させるには、たとえばこんな patch を適用して
mnews を作り直す必要があります:
----patch start----
--- src/mh.c.dist Fri Sep 4 11:28:45 1998
+++ src/mh.c Fri Sep 4 12:07:05 1998
@@ -416,7 +416,36 @@
if (!mh_mode) {
return(0);
}
- sprintf(init_file, "%s%c%s", home_dir, SLASH_CHAR, MH_INIT_FILE);
+ {
+ char *mymh;
+
+ if ((mymh = getenv("MH")) != NULL) {
+ /* set alternate MH profile path */
+ if (*mymh == SLASH_CHAR) { /* absolute path */
+ if (PATH_BUFF < (strlen(mymh) + 1)) {
+ fprintf(stderr, "init_file buffer is not enough: current = %d\n", PATH_BUFF);
+ exit(1);
+ }
+ sprintf(init_file, "%s", mymh);
+ } else {
+ char *p;
+
+ if ((p = getcwd(NULL, PATH_BUFF)) == NULL) {
+ perror("getcwd");
+ exit(1);
+ }
+ if (PATH_BUFF < (strlen(p) + 1 + strlen(mymh) + 1)) {
+ fprintf(stderr, "init_file buffer is not enough: current = %d\n", PATH_BUFF);
+ exit(1);
+ }
+ sprintf(init_file, "%s%c%s", p, SLASH_CHAR, mymh);
+ free(p);
+ }
+ } else {
+ /* set standard MH profile path */
+ sprintf(init_file, "%s%c%s", home_dir, SLASH_CHAR, MH_INIT_FILE);
+ }
+ }
buff1[0] = buff2[0] = '0';
init_field[0].field_buff = &buff1[1];
init_field[1].field_buff = &buff2[1];
----patch end----
この patch を適用した mnews であれば、
% env MH=/other/place/other_mh_profile mnews args...
として、標準とは異なる MH 設定ファイルを利用できます。
なお、/usr/local/share/doc/mnews/ ディレクトリ内に mnews 関連ドキュメ
ントがありますので、こちらも随時参照して下さい。
グループ名: MH