defaults protocol pop3 fetchall poll mail.yk.rim.or.jp protocol pop3 username ******** password ******** poll pop.ceres.dti.ne.jp protocol pop3 username ******** password ********と書いて、chmod 600 ~/.fetchmail している。
FreeBSD 2.2.8Rのバイナリパッケージfetchmail-4.6.0.tgzは、kerberos対応バイナリとしてコンパイルされているので、kerberosが入っていない場合には利用できない。 そんな場合はportsからコンパイルしよう。
fetchmail-4.3.1の場合、メール本文中の行頭に . (ピリオド)が入っている行があるとメールを取って来れなくなるというバグがあるようだ。 そんな場合には、緊急避難措置としてpopclient-3.0b6を利用すると良い。
また、最新のfetchmail (ports-currentからコンパイルしたもの)では、メールを取って来る時にメールタイトル(Subject)のMIMEをデコードする機能が追加されている。 mew-1.92.4+imを利用している場合は、メール取得クライアントであるfetchmailがMIMEをデコードすると都合が悪いので、~/.fetchmailrc内部に以下のように指定して MIMEデコードを禁止すると良いようだ。
no mimedecode
現在、popclientの新規開発は停止しており、fetchmailというソフトに役割を譲っているようだ。
ToDomain=magi.nerv.jpのように、ローカルマシンの名前を記述しておくと良い。
以下に、mew-1.91でメールもスレッド化する差分を示す。 mew-1.90以降では、News閲覧モードでメールのMessage IDをもとにして、元発言とそれに対するコメントをツリー状に表示する機能(スレッド化機能)がある。 この差分は、メール閲覧モード(Summaryモード)でもコメントツリー状の表示を行うようにするためのものだ。
この差分のインストール方法は下記の通り。(setq mew-always-thread t)
以下に、mew-1.90でメールもスレッド化する差分を示す。 mew-1.90以降では、News閲覧モードでメールのMessage IDをもとにして、元発言とそれに対するコメントをツリー状に表示する機能(スレッド化機能)がある。 この差分は、メール閲覧モード(Summaryモード)でもコメントツリー状の表示を行うようにするためのものだ。
この差分のインストール方法は下記の通り。(setq mew-always-thread t)
日本語のメールタイトルが化けて表示される場合には、 jp-mhの設定 に書かれている方法で対処することができるが、下記のようにmewの設定を変更することもできる。
~/.emacs内部に
(setq mew-mule-charset-local *euc-japan*unix)を追加すると、EUC漢字コードで表示されているメールタイトル一覧をmewから見ることができる。
mewをしばらく使っていると、メール総数が9999通を越えて、メール番号が表示されなくなってしまう。 そんな時は、~/Mail/scan.form の記述を下記のように変更すると5桁まで表示できるようになる。
%5(msg)%<(cur)+%| %>%<{replied}-%|%<{encrypted}E%|\ %<(eq)%(trim{content-type})%<(amatch multipart)M%| %>%>%>%>\ %02(mon{date})/%02(mday{date})%<{date} %|*%>\ %<(mymbox{from})%<{to}To:%14(hdecode(friendly{to}))%>%>\ %<(zero)%17(hdecode(friendly{from}))%> \ %(hdecode{subject})%<{body}<<%{body}%>最初の行の %4(msg) を %5(msg) と変更しているだけである。(^^;)
ちなみに、mew-1.55, mew-1.70をBcc:(Blind Carbon Copy)に対応させる差分は以下の通り。
このパッチの利用方法を示す。(setq mew-bcc "george")
localname: yk.rim.or.jpという行を追加してローカルドメイン名を指定する。 /usr/local/lib/mh/mtstailorの設定に関する詳細は、man mh-tailor で表示されるはずだ。
また、mhのinc(メールを取って来るmhのコマンド)をPOPサーバーから取って来るように変更するには、コンパイルオプションを変更してコンパイルし直す必要がある。 再コンパイルが面倒な場合はfetchmailをpkg_addして利用しよう。
jp-mhのscan等で表示される漢字コードは、以下の順番で決定される。
file-coding: JIS7 display-coding: JIS7 process-coding: JIS7という記述を追加すると良い。 (mewの方で漢字コードの設定を変更することもできるが)
X-Authentication-Warning: didn't use HELO protocolというエラーメッセージが自分で送信したメールに混入してしまう場合には、/usr/local/lib/mh/mtstailorに
clientname: localhostという行を追加しよう。
send: -hencode -client localhostのように指定するという方法もある。
mime_format: 2 news_thread_mode: on mail_thread_mode: on sort_rule: 1 japanese_mode: on auto_sig_mode: on add_cc_mode: off jst_mode: on indicator: > read_groups: dti. fj. japan. mail_fcc_field: Mail/fcc news_fcc_field: Mail/fcc msgchk_rule: 2 input_code: EUC mh_mode: on ucbmail_mode: off rmail_mode: off mh_select_mode: off edit_command: elvis max_thread_number: 1000edit_command: の行は、mule -nwでもいいかもしれない。
以下、私の設定例を紹介する。
私の設定ファイルは以下の通り。
このファイルの内容は、sendmailの項目で作成したgeorge.mc-8.8.8に上記のページ「Preventing Relaying Through Your SMTP Port」で紹介されていたマクロを追加したものだ。 インストール方法は以下のようになるだろう。
テスト結果を以下に示す。
Initiating Third-Party Mail Relay Test ... Target Host = xxx.xxx.xxx.xxx ------------------------------------------------------------ Launching rlytest ... Connecting to xxx.xxx.xxx.xxx ... <<< 220 magi.nerv.jp ESMTP Sendmail 8.8.8/8.8.8; Tue, 20 Oct 1998 00:41:27 +0900 (JST) >>> HELO isrv1.pa.vix.com <<< 250 magi.nerv.jp Hello isrv1-i.pa.vix.com [204.152.184.28], pleased to meet you >>> MAIL FROM:<nobody@[xxx.xxx.xxx.xxx]> <<< 250 <nobody@[xxx.xxx.xxx.xxx]>... Sender ok >>> RCPT TO:<nobody@isrv1.pa.vix.com> <<< 550 <nobody@isrv1.pa.vix.com>... Relaying Denied rlytest: relay rejected - final response code 550 ------------------------------------------------------------ Test complete. GOOD NEWS! Host [xxx.xxx.xxx.xxx] refuses to relay mail.
と、ブラウザに表示されれば成功している。 以上の設定で、外部からのメールのリレーを拒否する設定になった。
マシン内部宛のメール送信の場合は、宛先、差出人ともにドメイン名(@yk.rim.or.jpのような文字列)は必要ないので通常は付加しない。 ところが、マシン外部に向けてメールを送信する場合、宛先、差出人ともにドメイン名を付加する必要がある。 これらのドメイン名の付加やドメイン名の書き換えなどの処理を/etc/sendmail.cfという設定ファイルにしたがって行うのもsendmailの仕事である。
FreeBSDインストール直後の状態では、マシン外部に向けてメール送信する時に差出人に付けられるドメイン名が@myname.my.domainという実在しないドメイン名になってしまう。 通常、メールをもらった人はFrom:に書かれた差出人の所にメールの返事を出そうとするが、「george@myname.my.domain」などというメールアドレスは実在しない。 実在しないメールアドレスにメールを出せば、配達不能でメールが戻ってくるのはごく自然な成り行きだ。 そこで、sendmail.cfを変更して、差出人に付けられるドメイン名をプロバイダのメールアドレスなど、実在するドメイン名にする必要がある。
/etc/sendmail.cfは一応テキストファイルなのだが、人間の手で作成するのはかなり困難だ。 そこで、sendmail.cfを簡単に作成するCFというツールが公開されている。
私個人はCFは使わずに/usr/src/usr.sbin/sendmail/cf/にあるツールを利用している。 詳しくは、/usr/src/usr.sbin/sendmail/cf/README(英語だが...)を読んで欲しい。 以下では、私の設定方法を示す。
まずは、/usr/src/usr.sbin/sendmail/cf/cf/freebsd.mcを参考に、自分用の設定ファイルを作成する。 ここでは、george.mcというファイルを作成した。
VERSIONID(`@(#)george.mc $Revision: 1.1.4.4 $') OSTYPE(bsd4.4)dnl DOMAIN(generic)dnl MAILER(local)dnl MAILER(smtp)dnl FEATURE(mailertable, `hash -o /etc/mailertable')dnl define(`confCW_FILE', `-o /etc/sendmail.cw')dnl FEATURE(masquerade_envelope)dnl MASQUERADE_AS(yk.rim.or.jp)dnl設定のキモは MASQUERADE_AS だ。 ここに、偽りたいドメイン名を書いておけば良い。 私の場合は yk.rim.or.jp とした。
ちなみに、上記の設定ファイルに
define(`SMART_HOST', smtp:mail.yk.rim.or.jp)dnlという行を追加すると、外部向けのメールを処理するSMTPサーバを指定できるようだ。 しかし、最近はSPAMメールの踏み台になるので外部からのメールの中継を拒否するサイトが主流なので、成功することはあまりないだろう。
以下にインストール作業を示す。
この作業は、sendmailを使って外部にメールを出す前に行わなければならない。 メールの返答先をReply-To: で指定するという手もあるが、メーリングリストなどではあまり歓迎されない。 これは、Reply-Toを指定されたメールに返事を出す際に、メーリングリストに返事のメールが流れずにメールを出した個人宛にメールが送られてしまうからだ。
1998.12.23現在、FreeBSD FAQ #133 ダイアルアップでインターネットに接続する環境でメールをセットアップするにはどうやるの?という項目も利用できるので、そちらを参考にした方が確実だと思う。
OS_TYPE=bsd4.4 CF_TYPE=R8 DIRECT_DELIVER_DOMAINS=none DEFAULT_RELAY="my.providers.mail.server" FROM_ADDRESS='$m'FreeBSD徹底入門によると、DEFAULT_RELAYの所を各自のプロバイダのメールサーバー名にして、外部ホスト向けのメール送信は、プロバイダのメールサーバに任せる設定とのことだ。
ファイヤーウォール(防火壁)の内側のマシンからメールを送信する際や、自分のマシン名を恥ずかしい名前にしているとき、メールを送信したホスト名やIPアドレスを隠しておきたい場合がある。 (この設定をしないと、メールの先頭付近に、隠しておきたいホスト名が Received: localhost.nerv.jp (127.0.0.1) などと出てしまうのだ。) この場合は、上記の設定に加えて
FORMAT_RECEIVED=Simple-Proto-Destという行を追加すると良いらしい。