メモ
ここから署名です (ココカラショメイデス) – 関心空間
Re: about highlight signature
News Article Format draft-ietf-usefor-article-01
某ドメインでGoogle Apps Standard Editionを利用していたのですが、そのドメインのメールアドレスがSPAM配信に使われているようで、配信不能なエラーメールが大量に届くようになってしまいました。
とりあえず、
- 存在しないアカウント分は受信しないことに
- こちらのヘルプに従いSPFレコードを設定
をおこなって様子見です。
Postfixに宛先だけで中継許可判定させる
Postfixを使って、特定のドメイン、宛先にしかメールを送信できないMTAを用意してみました。
mynetworks以外からの接続でも、宛先さえマッチすればいくらでも中継するという、本番ではあまり好ましくない構成ですが、テスト環境としては重宝したりします。環境はCentOS 3.9+Postfix 2.0.16です。
まずは、mynetworksであれば中継するという動作を抑制するため、main.cfのsmtpd_recipient_restrictionsからpermit_mynetworksを取り除きます。
smtpd_recipient_restrictions = reject_unauth_destination
次に送信可能な宛先をrelay_domainsとrelay_recipient_mapsに定義します。
main.cfのrelay_domainsに中継可能な宛先を列挙します。
relay_domains = example.jp, example.com, example.net relay_recipient_maps = hash:/etc/postfix/relay_recipients
さらにrelay_recipient_mapsにユーザ名まで含めた宛先を列挙します(/etc/postfix/relay_recipients)
@example.jp # user1@example.com # user2@example.net #
これで一応example.jpは全ユーザ宛、example.comとexample.netは一部ユーザ宛に送信可能で、それ以外には送信できないMTAになるはずです。
ただ、一点不可解な動きがあって、SMTP接続では意図した動作になるものの、sendmailコマンドで送信すると宛先に関係なく送信できてしまう状態になってしまいました。コマンド起動だとmain.cf利かないなんてわけはないだろうし…謎です 😕
fetchmailをdaemonモードで動かして、複数サイトのメールを自宅サーバに取り込んでいます。
いくつかのサイトのうち、何件かは1日に1回取り込めばいいレベルの情報しかこないので、サイト毎に取り込み間隔を変えてみました。
具体的にはfetchmailrcでサイト毎にintervalを設定します。
以下fetchmail manページより:
interval Only check this site every N poll cycles; N is a numeric argument.
fetchmailrcの記述はこんな感じ。
set daemon 60 : defaults: ssl sslcertck sslcertpath '/etc/ssl/certs' # このサイトは1時間毎 poll pop.example.com with proto POP3: interval 3600 : # このサイトは1分毎 poll pop.example.net with proto POP3: interval 60 : # このサイトは1日1回 poll pop.example.jp with proto POP3: interval 86400 :
ちなみにdeamon指定はinterval指定より短くしないとうまく動きません(当たり前か)。
あくまでもdaemonの間隔でチェックが動作して、そのときにintervalを経過していたら取り込みをおこなう、という動作になるようです。
ちゃんと整理しておきたいけど、とりあえずメモ。
Postfix
キューファイルの内容を表示する
postcat -q キューID
メールをキューに入れなおす
postsuper -r キューID
メールキューの削除
postsuper -d キューID
Exim
本文表示
exim -Mvb キューID
ヘッダ表示
exim -Mvh キューID
ログ表示
exim -Mvl キューID
再配送指示
exim -M キューID
削除
exim -Mrm キューID
Courier
再配送指示
courier flush キューID
削除
cancelmsg msgid
転送設定できないメールをgmailアカウントに転送したい、という事情があり、fetchmailを使ってやってみました。こんな感じ。
poll mail.example.jp with proto POP3: interval 60 user '********@example.jp' pass '********' is ********@gmail.com
“is ~”のところが転送先(というか配信先)のアカウントで、こうするとローカルのSMTP経由で、取り込んだものがそのまま転送されます。
ローカルのSMTPがlocalhostからのメールを転送できる必要がありますが。
個人的には外部向け25番ポートを閉じたいと思っているので、こちらの情報を参考にさせてもらって、SMTP AUTH+サブミッション・ポート利用の方式に変更する予定。
Exim4 のスマートホスト機能でメールを送信する
丁度よいことにウチもDebianだし。
開発バージョンである2.11.2に含まれるEUC-JPな日本語テキストをUTF-8に変換するシェルスクリプトです。
#!/bin/sh adminfiles="admin/help/ja admin/info/ja admin/lan/ja" for f in `find $admindirs -name "*.php"`; do lv -Iej -Ou8 < $f > $f.$$ mv -f $f.$$ $f done f="texts/japanese.inc" lv -Iej -Ou8 < $f > $f.$$ sed 's#EUC-JP#UTF-8#' $f.$$ > $f rm -f $f.$$
phplistのアーカイブを展開したあとのpublic_html/lists直下で実行する必要があります。
変換対象はスクリプトのとおり、admin/help/ja/*.php、admin/info/ja/*.php、admin/lan/ja/*.phpとtexts/japanese.incです。
admin/phpmailer/language/phpmailer.lang-ja.phpというファイルもあって、こちらには”This file is written in EUC-JP.”とコメントがありますが、実際のコードはUTF-8になっていますので変換不要です。
phplist-2.10.4がリリースされていました。
一時、EUC-JPで配布されている言語ファイルのUTF-8化を試みておりましたが、もう一度やり直しです。実はその後ぜんぜんテストできてなかったので、DBも消してまっさらの状態から。
今回は日本PHPLISTユーザグループが配布している日本語化済みの配布物ではなく、本家ソースのCVSチェックアウト版だけでやってみます。
本家の配布物では管理画面系の日本語化はされておりませんが、フロント系の日本語化は含まれています。
CVS版を利用するのは、ローカル、リモート含めた変更内容の把握を容易にするためです。
今回のリリースアップ(2.10.3->2.10.4)でどこが変更されたのかわかりにくかったので。
phplist-2.10.4をCVSリポジトリからチェックアウトします。2.10.4用のリリースタグはphplist-version2-10-4になります。
以下は通常の配布物を~/public_html/phplist/listsに展開するイメージでのチェックアウト方法です。
$ cvs -d:pserver:anonymous@phplist.cvs.sourceforge.net:/cvsroot/phplist login Logging in to :pserver:anonymous@phplist.cvs.sourceforge.net:2401/cvsroot/phplist CVS password: $ cvs -d:pserver:anonymous@phplist.cvs.sourceforge.net:/cvsroot/phplist co -r phplist-version2-10-4 -d ~/public_html/phplist phplist/public_html
これで~/public_html/phplist配下にindex.htmlとlistsディレクトリ配下一式がチェックアウトされます。
フロント用の日本語言語ファイルはtexts/japnaese.incになりますので、UTF-8に変換しjapanese2.incとして保存します。
$ cd ~/public_html/phplist/lists/texts $ lv -Ie -Ou8 < japanese.inc > japanese_utf8.inc
言語ファイルはconfig/config.phpで指定します。
$language_module = "japanese_utf8.inc";
仮に管理系もUTF-8化したい場合は、2.10.3用日本語言語ファイルを本家Issue Trackerからダウンロードして展開し、変換すればよいでしょう。
$ wget -N http://mantis.phplist.com/file_download.php?file_id=926&type=bug $ unzip phplist-2.10.3ja_v.1.1.zip $ mkdir -p ~/public_html/phplist/lists/admin/{help,info,lan}/ja $ cd phplist-2.10.3ja_v.1.1/phplist-2.10.3/public_html/phplist/lists $ for f in `find . -type f`; do > lv -Ie -Ou8 < $f > ~/public_html/phplist/lists/$f > done
で、さっそくセットアップを開始しようとhttp://www.example.net/adminにアクセスしてみましたがページが真っ白です…。何か間違えたかなぁ 😕
■2007-02-14追記
セットアップが開始できなかったのは、チェックアウトするモジュールの不足が原因でした orz
admin配下にcommonlibを配置する必要があります。
$ cd ~/public_html/phplist/lists/admin $ cvs -d:pserver:anonymous@phplist.cvs.sourceforge.net:/cvsroot/phplist co -r phplist-version2-10-4 phplist/commonlib
phplistというウェブベースで動作する、メールマガジン発行システムがあります。
こちらの日本語版が日本PHPLISTユーザグループで配布されていますが、EUC-JPだったのでUTF-8に変換して動かしてみました。
まずはlvコマンドを使って以下のファイル群をUTF-8に変換していきます。
- admin/help/ja/*
- admin/info/ja/*
- admin/lan/ja/*
- admin/defaultconfig.inc
- texts/japanese.inc
たとえばadmin/help/ja/*のファイル群は以下のようにして変換しています。
$ cd admin/help $ mv ja ja.eucjp $ mkdir ja $ cd ja.eucjp $ for f in *.php; do lv -Ie -Ou8 < $f > ../ja/$f; done $ cd .. $ rm -rf ja.eucjp
また、admin/defaultconfig.incとtexts/japanese.inc、それから.htaccessにEUC-JPと明示している部分がありますので、それらもUTF-8に変更します。
この状態でphplistの初期セットアップをおこなった限りでは無事動作しました。今後メール送信といった動作確認をすすめてみようと思います。
普段、メーラはMeadow+Wanderlustを使っているのですが、わけあってThunderbirdを使うことに。
周囲でも使っている人は多いのですが、なんとなく好きになれずにいます。理由は…
- HTMLメールを使う相手にはHTMLメールを送信するのがデフォルトになっている
- メール表示、返信時の引用符変更が面倒
特に2点目は、まとめサイトにも記載されている「引用符の装飾表示を無効にしたいのですが」をおこなっただけでは不十分で、つれづれな日常さんが書かれているようにuserContent.cssの変更が必要でした。
blockquote[type=cite] { border-left-width: medium ! important; border-left-style: solid ! important; border-left-color: gray ! important; border-right: none ! important; }
CSS変更が必要だとは。うぅん、HTMLメール寄りな気がしますね。