mnews でメイルの読み書き

ビルド時の調整

src/mailsend.h にて MAX_SEND_SIZE が定義されている。 添付ファイルをばんばん送る場合、デフォルト値では小さいので、 ここを大きくしておくとよい。

#define MAX_SEND_SIZE   (48L * 1024L)
↓
#define MAX_SEND_SIZE   (480L * 1024L)  /* 好きな大きさに。 */

自分は SEND_CONFIRM を使うのだが、一部のメッセージはやや冗長に感じる。 そこで、mailsend.c を局所的に書き換えて抑制する。

■一ヶ所目
#ifdef  SEND_CONFIRM
/*
  if (!yes_or_no(NORMAL_YN_MODE, "新しい記事を発信しますか?",
                 "Send new article.Are you sure?")) {
    return(1);
  }
*/
#endif  /* SEND_CONFIRM */
■二ヶ所目
#ifdef  SEND_CONFIRM
/*
  if (!yes_or_no(NORMAL_YN_MODE, "記事を返信しますか?",
                 "Send reply article.Are you sure?")) {
    return(1);
  }
*/
#endif  /* SEND_CONFIRM */ 

新しいシンボルを作ってもよいのかもしれないが、ad hoc に。

gmail 経由のメイル送信

mnews は単体では SMTPAUTH できないが、sendmail のかわりに ssmtp を使えば gmail 経由でメイルを送信できるようになる。 FreeBSD 本体の sendmail を置き換えずに何とかする方法をメモしておく。

ssmtp は ports にあるので、単純インストールする。

# cd /usr/ports/mail/ssmtp
# make install clean

続いて、設定をしておく。

# vi /usr/local/etc/ssmtp/revaliases
root:youraccount@gmail.com:smtp.gmail.com:465
you:youraccount@gmail.com:smtp.gmail.com:465
# vi /usr/local/etc/ssmtp/ssmtp.conf
root=
mailhub=smtp.gmail.com:465
rewriteDomain=
hostname=yourhostname
FromLineOverride=YES
UseTLS=YES

設定ができたら、テスト送信してみる。

% vi /tmp/hoge
From: gmailで送信元として設定しているアドレス
To: テスト送信先アドレス

ssmtp send test
% cat /tmp/hoge \
  | /usr/local/sbin/ssmtp -t -om -oi -auYourAccount@gmail.com -apYourPassword

テスト送信先で、無事に受け取れるはずだ。 -au の後ろや -ap の後ろに空白を入れないところがミソ、かもしれない。
さて、うまく送れたら、この行をスクリプト化しておく。

% cat $HOME/bin/ssmtpwrapper
#!/bin/sh
/usr/local/sbin/ssmtp -t -om -oi -auYourAccount@gmail.com -apYourPassword

このスクリプトを用いて送信するように mnews を調整するわけだ。

mnews はデフォルト設定で「MTAP」(MTA の Pipe 起動) をサポートしているはずだが、 デフォルトでは /usr/sbin/sendmail を使うようになっているので、 この部分を先のスクリプトになるように書き換えてカスタムビルドする。 sendmail 自体を ssmtp に置き換えてしまう作戦の場合は、MTAP をサポートしている かどうかだけを確認しておけばよい。

% mnews -v
(中略)
Network      :-DNNTP -DSMTP -DMTAP -DMSPL

「-DMTAP」が出てくればよい。出てこなかったら、config.jsh からやりなおしだ。

mnews の設定ファイル ($MNEWS_SETUP に指定されているファイル) にて、 smtp_mode を off にすることで MTAP が有効になる。 mnews 起動後、ヘッドバーの部分が [MTAP] になっていればよい。

Mini News Reader Ver 1.22PL7       Copyright (C) By A.Takuma [MAIL][MTAP][MSPL] 
                                                                   ~~~~~~

ワイドモードにしていると見えないので、w で切り替えてちゃんと確認しておくこと。

あとは、普通にメイルを送信すればよい。

gmail からのメイル受信

mnews は単体では gmail から pop できないが、 stunnel でトンネルしてあげれば gmail からメイルを受信できるようになる。

stunnel は ports にあるので、とりあえず投入する。

# cd /usr/ports/security/stunnel/
# make install clean

続いて、設定を行う。 設定ファイルはどこに置いてもいいが、ここでは $HOME/etc/ に置いてみた。

% cat ~/etc/stunnel.gmail.conf
client = yes
foreground = yes
[pop_server]
        accept  = localhost:10110
        connect = pop.gmail.com:995

これで、10110 番ポートに pop で繋げばよい、ということになる。

ついでに fetchmail を使う場合の設定も記しておく。

% cat ~/etc/fetchmail.gmail.conf
set postmaster "your_username_on_local_machine"
set bouncemail
set properties ""
poll localhost proto POP3 port 10110
  user 'gmail_user_name' there with password 'gmail_passwd' is xxx here
  mda  "/usr/libexec/mail.local %s"
fetchall

この設定では mda に mail.local を使うのだが、 デフォルトでは mail.local は一般ユーザで使えない。 そこで、setuid してしまうことにする。 詳細は 別項に記載しているが、 要するに chmod 4755 /usr/libexec/mail.local っていう話である。

[$Revision: 1.4 $ $Date: 2009.02.17 12:11:09 $]
[EOF]