









[blog]
[ML]
[todo]
[CVS]
[bug]
[apache log]
[swiki log]
[statistics]
[map]
[man]
[info]
[アンテナ]
Swikiのアラートメールに関する話題
実をいいますと、このSwikiでは未だ、アラートメールの設定が
行われていません。現在、設定方法を試行錯誤してやっています。
うまく出来次第、このページに方法を記載します。
う〜ん、いろいろやってもAlert mail飛びません。
SwikiってWinな世界で使っている人や、Macな世界で使っている人が
多そうだから、SMTP(port25)に話かけるのではないかと思うのですが、
どうなのでしょう?
まさか、sendmailを直接叩くわけないし....
で、ここはqmailなんすけど、qmailの第3者中継禁止条項にかかるわけなのかな?
確認方法としては、パケット全部見るか、ソース読むか ...
squeakから確認しましたが、Squeakからは
SMTPSocket
deliverMailFrom: 'www-data'
to: #(#'your@email.addres.edu' )
text: 'From: test
To: "not listed"
Subject: this is a test
Hello from Squeak!
'
usingServer: 'comm'
でdoitしてうまく送信できるのですが、swikiではうまく動作しませんね。

その後の調査
- まず、SMTPSocketクラスにより、メールを送信している。
- これは、指定されたサーバーのポート25にデータを出力する。
- 但し、いくつかの設定がされていない場合、メールを送信しないようになっている。
- SqueakでTranscript Windowを表示したまま、アラート設定されているページを保存すると、SMTPのログが出力されます。
- なぬ、SMTPエラーが出ている...

その2
- 結局のところ、原因は、Squeak or Swikiのバグっぽい。
- Alert Mailの本文が、1行の場合のみ送信できる。
- 通常のStringでメッセージを渡せば、複数行でも送信できる。
- 多分、qmailとの相性が悪いのが原因だろう。
- あと、第三者中継ができないので、他ドメインの方には、アラートが送信できません。
- 現状、1行メールでの送信でとどめますが、将来的には、SMTPに直接語りかけず、mailコマンドをexecしたほうがよいかもしれない。

とりあえずの結論
- OSProcess自体が、うまく組み込めないし、組み込むのも面倒なので、下記の方策にて、アラートメール送信をごまかすものとする。
- # まず、NuSwikiPageのsendAlertsを書き換えて、SMTPポートに出力する内容を、適当なファイルに出力しちゃう。
- # cronを走らせて(5分毎とか)、そのcronでメール送信をする。
- # メール送信は、SMTPに語りかけず、qmail-injectでローカルから配信する。(そうすれば、第三者中継の制約にはかからない)
- # っていうか、アラートメールに関しては、Squeak自体がMTAを持つか、Swikiが直接 OSProcessを組み込んで、MTAコマンドをたたくようにする方がよいのかもしれない。
- ということで、NuSwikiPage:sendAlertは、SendAlerts.txtで書き換えるべし。
- このように変更すると、/tmp/alert_??????というファイルが作成され、送信メール内容が書き込まれる。
- 取説:SwikiAlertに実際使っているものの説明をおきます。スクリプト自体は、公開CVSリポジトリに登録しました。

注意(2002/02/04)
一部バグ(サブジェクトのエンコーディングがなさげっぽい)
があります。(1.1版)
後日修正予定。
なんですけど、別段問題ではないので、この問題は解決とする。
その2(2002/02/06)
アラートメールの本文にあるURLが、IP生になっています。
FQDN(ではないのですが)で記述されるように修正予定。
と思ったのですが、そうでもない様子なので、この問題は解決とします。
SendAlerts.txt
その3
2002/05/03
正しいメール形式で送信されません。
もう一度直しますので、使用しないでください。

Links to this Page