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 っていう話である。