courier-IMAPとsquirrelmail(webmail)でwebmeilを構築を
試みてますが、うまくいきません。
今までの経緯は次のとおりです。
solaris8(Sparc)でpositfix + courier-IMAP + Apace + squirrelmail
を組み合わせて1ホストでwebmailを構築しました。この場合何の問題もなくwebmailが使えます。
(ちなみにIMAPの認証(authdaemon)はPLAINです。)
しかし、負荷を分散させるためメールサーバ(postfix+imap)はそのままにして、
webサーバー と squirrelmailを他のホスト(windows2000server,IIS)にして運用すると、
squirrelmailからcourier-IMAPにログインできません。
webサーバをApache(windows版)にしても状況は変わりません。
ただし、この場合でもsquirrelmailを使わず、ネットワーク上の
どのクライアントからもtelnetでの143番ポートにはつながりますし、
outlook-expressなどからも正常にcourier-imapに接続できます。
squirrelmailでログインした際のログやパケットモニターを見ると
squirrelmailでcourier-imapにログインしようとすると、squirrelmail
で入力したユーザー名、パスワードで一度はログインできています。
しかし、なぜかその後squirrelmailはログアウトした後、
再度ログイン試みています。このときユーザー名はsquirrelmail
で入力したのもなのですが、パスワードが""(空)になって
しまっていて、それでログインしようするのでログインに失敗しているのです。
squirrelmailのバージョンを変えたりしてますが、状況は変わりません。
あと疑うとしたらPHP4のphp.iniかcourierの設定かなと思ってますが
いきずまっています。
何かアドバスをいただけたら幸いです。よろしくお願いします。
> しかし、負荷を分散させるためメールサーバ(postfix+imap)はそのままにして、
> webサーバー と squirrelmailを他のホスト(windows2000server,IIS)にして運用すると、
> squirrelmailからcourier-IMAPにログインできません。
> webサーバをApache(windows版)にしても状況は変わりません。
>
> ただし、この場合でもsquirrelmailを使わず、ネットワーク上の
> どのクライアントからもtelnetでの143番ポートにはつながりますし、
> outlook-expressなどからも正常にcourier-imapに接続できます。
大前提として、「windows2000serverからもtelnet 143は繋がる」ですよね。
> squirrelmailでログインした際のログやパケットモニターを見ると
> squirrelmailでcourier-imapにログインしようとすると、squirrelmail
> で入力したユーザー名、パスワードで一度はログインできています。
> しかし、なぜかその後squirrelmailはログアウトした後、
> 再度ログイン試みています。このときユーザー名はsquirrelmail
> で入力したのもなのですが、パスワードが""(空)になって
> しまっていて、それでログインしようするのでログインに失敗しているのです。
>
> squirrelmailのバージョンを変えたりしてますが、状況は変わりません。
> あと疑うとしたらPHP4のphp.iniかcourierの設定かなと思ってますが
> いきずまっています。
windows2000serverでsquirrelmailを実行したときPHPのエラーがでていない、且つ、
http://www.example.com/webmail/src/configtest.php
で、コンフィグにエラーがないことを前提として、ローカルでうまくいったsquirrelmail設定のままwindows2000serverでも設定し、IMAPとSMTPの設定をlocalhostからsolaris8(Sparc)のIPアドレスに変えれば動かない理由はないですね。
サーバ間でのやり取りをパケットキャプチャしたとのことですが、いったん繋がったあとsquirrelmail側で切断した後、再度ログインという動きが解せないですね。
因みに、おやじの環境ではIMAPアドレスさえ変えてあげれば、squirrelmailがLinuxでもwindows(xp sp2 + apache)でも問題なくアクセスできますね。
早速アドバイスありがとうございます。
> > ただし、この場合でもsquirrelmailを使わず、ネットワーク上の
> > どのクライアントからもtelnetでの143番ポートにはつながりますし、
> > outlook-expressなどからも正常にcourier-imapに接続できます。
>
> 大前提として、「windows2000serverからもtelnet 143は繋がる」ですよね。
繋がります。
(前述のとおりwindows2000serverからsolarisのIMAPにCONNECTのログも残っています。)
> windows2000serverでsquirrelmailを実行したときPHPのエラーがでていない、
index.phpをひらいたときは、エラーはでません。
ログインできないのでその後のページでの有無はわかりません。
(phpinfo();を書いたphpページはきちんと表示できます。)
また、configtest.phpではエラーはありません。
> コンフィグにエラーがないことを前提として、ローカルでうまくいったsquirrelmail設定のままwindows2000serverでも設定し、IMAPとSMTPの設定をlocalhostからsolaris8(Sparc)のIPアドレスに変えれば動かない理由はないですね。
squirrelmailでの設定は、SMTP、IMAPともsolarisのIPアドレスに変えています。
courierへのログインができない段階なのでSMTPの設定は全く考えていませんが、
squirrelmailではSMTPの設定(postfixのmain.cf)がIMAPへのログインに影響するのでしょうか?
今自宅なのでログが確認できませんが、SMTPの何らかのログも残っていたような気がします。・・・(でもこれは、遅延しているメールを処理しているログだったと思います。)
あす、確認してみます。
courierやauthlibの設定で何かしなければならないものはないでしょうか。
> > 大前提として、「windows2000serverからもtelnet 143は繋がる」ですよね。
>
> 繋がります。
> (前述のとおりwindows2000serverからsolarisのIMAPにCONNECTのログも残っています。)
>
> > windows2000serverでsquirrelmailを実行したときPHPのエラーがでていない、
>
> index.phpをひらいたときは、エラーはでません。
> ログインできないのでその後のページでの有無はわかりません。
> (phpinfo();を書いたphpページはきちんと表示できます。)
>
> また、configtest.phpではエラーはありません。
>
> > コンフィグにエラーがないことを前提として、ローカルでうまくいったsquirrelmail設定のままwindows2000serverでも設定し、IMAPとSMTPの設定をlocalhostからsolaris8(Sparc)のIPアドレスに変えれば動かない理由はないですね。
>
> squirrelmailでの設定は、SMTP、IMAPともsolarisのIPアドレスに変えています。
>
> courierへのログインができない段階なのでSMTPの設定は全く考えていませんが、
> squirrelmailではSMTPの設定(postfixのmain.cf)がIMAPへのログインに影響するのでしょうか?
> 今自宅なのでログが確認できませんが、SMTPの何らかのログも残っていたような気がします。・・・(でもこれは、遅延しているメールを処理しているログだったと思います。)
> あす、確認してみます。
>
> courierやauthlibの設定で何かしなければならないものはないでしょうか。
SMTPはとりあえず送信しないのであれば、ログインには全く関係ありません。
squirrelmailは、単なるPHPベースのWebインタフェースを持ったIMAP対応のメールクライアントですから、PHPが動いている環境ならどこに置こうと、IMAPサーバのアドレスだけ変更するだけでつながらないとおかしいです。つまり、solarisでlocalhostでうまくいったなら、そのフォルダ毎windows2000serverにコピーしIMAPアドレスだけ変更すれば動作するはずです。実際、おやじのところではsquirrelmail側がWindowsだろうがlinuxだろうが、またターゲットのIMAPがcourierだろうがMercury(Windows版IMAP)だろうが、それぞれのIMAPサーバ用(IMAPアドレスとサーバ種別。Mercuryはotherで設定)に設定してあれば、どのような組み合わせでも問題なく動作します。
但し、PHP環境が正しくできていることが前提ですが・・・。エラーを見落としてませんか? 下記で画面上でエラーを表示できるので、一度確認してみてはどうですか?
http://www.aconus.com/~oyaji/tips/apache_tips5.htm
solarisでlocalhostでうまくいったという事実があるなら、courier側は何も問題ありませんから、気にする必要はありません。アクセスもできているのでフィルタ等で切られていることもないので、windows2000serverのPHP環境かsquirrelmail(Windows環境では直接conf.plを起動しますが、ちゃんとスクリプトで設定してますよね?)の設定がsolarisと違うぐらいしか考えられないですね。
おやじさんの
>solarisでlocalhostでうまくいったという事実があるなら、courier側は何も問題ありませんから、気にする必要はありません。
ということで、php.iniとsquirrelmailの設定に絞って調べた結果
src/redirct.php
の153行あたりの
header("Location: $redirect_url");
を
echo "<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=$redirect_url\"></head><body><a href=$redirect_url></a></body></html>";
に変えるとうまくいきました。
どうもありがとうございました。
> おやじさんの
> >solarisでlocalhostでうまくいったという事実があるなら、courier側は何も問題ありませんから、気にする必要はありません。
>
> ということで、php.iniとsquirrelmailの設定に絞って調べた結果
>
> src/redirct.php
> の153行あたりの
> header("Location: $redirect_url");
> を
> echo "<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=$redirect_url\"></head><body><a href=$redirect_url></a></body></html>";
> に変えるとうまくいきました。
>
> どうもありがとうございました。
php.iniで 「output_buffering = On」とすれば、元ままで動作しませんか?
お世話になります。
> > php.iniで 「output_buffering = On」とすれば、元ままで動作しませんか?
output_buffering = Onとしても動作しませんでした。
IMAPにログインできるようになり、メールも送受信できるようになりました。
ただ、ファイルを添付し、「追加」というボタンを押したとき、
メールのタイトル・本文・添付ファイル名(日本語を使っているもの)が文字化けします。本文は文字化けしません。
そのまま「送信」を押して送信すると、受信者には、タイトルと本文は文字化けしません。(添付ファイル名は文字化けしている。)
「追加」ボタンを押してページが遷移したときの文字コードの処理が不適切なのでしょうが、簡単に設定する方法はありますでしょうか。
なお、squirrelmailをsolarisで動かした時は、文字化けは全くありませんでした。
> お世話になります。
> > > php.iniで 「output_buffering = On」とすれば、元ままで動作しませんか?
>
> output_buffering = Onとしても動作しませんでした。
>
>
> IMAPにログインできるようになり、メールも送受信できるようになりました。
>
> ただ、ファイルを添付し、「追加」というボタンを押したとき、
> メールのタイトル・本文・添付ファイル名(日本語を使っているもの)が文字化けします。本文は文字化けしません。
> そのまま「送信」を押して送信すると、受信者には、タイトルと本文は文字化けしません。(添付ファイル名は文字化けしている。)
>
> 「追加」ボタンを押してページが遷移したときの文字コードの処理が不適切なのでしょうが、簡単に設定する方法はありますでしょうか。
>
> なお、squirrelmailをsolarisで動かした時は、文字化けは全くありませんでした。
squirrelmailのバージョンを1.4.6にしたら、文字化けの問題は、まったくおきませんでした。
> squirrelmailのバージョンを1.4.6にしたら、文字化けの問題は、まったくおきませんでした。
Windows環境だと、php.iniの設定がLinuxと全く同じでもSMTPは問題が出るようですね。
また、IISとApacheも少し違うのでしょうか?(おやじのApache環境ではLocation問題は起きない。)
1.4.6は確かに改善されているようですが、「表示」というタイトルや「表示.txt」を添付するとおやじの環境では相変わらず文字化けしますね。本文や添付ファイル内は大丈夫ですが・・。
Linux(UNIX)環境は全く問題ないので、微妙にPHPの動きが違うのですかね?
参考までにログやパケットモニターの結果を示します。
10.4.11.1がWindowsServer+IIS+squirrelmail
10.4.11.5がsolaris(ホスト名sparc)IMAP+SMTP
シスログ
Jun 1 14:40:42 sparc imapd: [ID 702911 mail.info] LOGIN, user=kawamoto, ip=[10.4.11.1]
Jun 1 14:40:42 sparc imapd: [ID 702911 mail.info] LOGOUT, user=kawamoto, ip=[10.4.11.1], headers=0, body=0
Jun 1 14:40:43 sparc imapd: [ID 702911 mail.info] Connection, ip=[10.4.11.1]
Jun 1 14:40:48 sparc imapd: [ID 702911 mail.error] LOGIN FAILED, ip=[10.4.11.1]
Jun 1 14:40:48 sparc imapd: [ID 702911 mail.error] DISCONNECTED, ip=[10.4.11.1], headers=0, body=0
Jun 1 14:40:49 sparc imapd: [ID 702911 mail.info] Connection, ip=[10.4.11.1]
Jun 1 14:40:54 sparc imapd: [ID 702911 mail.error] LOGIN FAILED, ip=[10.4.11.1]
Jun 1 14:40:54 sparc imapd: [ID 702911 mail.info] LOGOUT, ip=[10.4.11.1]
Jun 1 14:41:28 sparc imapd: [ID 702911 mail.info] Connection, ip=[10.4.11.1]
Jun 1 14:41:28 sparc imapd: [ID 702911 mail.info] LOGIN, user=kawamoto, ip=[10.4.11.1]
Jun 1 14:41:28 sparc imapd: [ID 702911 mail.info] LOGOUT, user=kawamoto, ip=[10.4.11.1], headers=0, body=0
Jun 1 14:41:28 sparc imapd: [ID 702911 mail.info] Connection, ip=[10.4.11.1]
Jun 1 14:41:33 sparc imapd: [ID 702911 mail.error] LOGIN FAILED, ip=[10.4.11.1]
Jun 1 14:41:33 sparc imapd: [ID 702911 mail.error] DISCONNECTED, ip=[10.4.11.1], headers=0, body=0
Jun 1 14:41:34 sparc imapd: [ID 702911 mail.info] Connection, ip=[10.4.11.1]
Jun 1 14:41:39 sparc imapd: [ID 702911 mail.error] LOGIN FAILED, ip=[10.4.11.1]
Jun 1 14:41:39 sparc imapd: [ID 702911 mail.info] LOGOUT, ip=[10.4.11.1]
パケット
ユーザkawamoto、パスワードもkawamoto
squirrelmailからのたった1回のログイン試行で以下のパケットがモニタできます。どうみても複数回imapにログイン使用としています。
もちろん、Outlookexpressのような他のメーラではこうにはなりません。
(solarisのパケットモニターsnoopでキャピュチャーしたものを
imap関係だけに絞ったもの)長くなってすみません。
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "* OK Courier-IMAP ready. Copyright 1998-2001 Double Precisio"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "A001 LOGIN "kawamoto" "kawamoto"\r\n"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "A001 OK LOGIN Ok.\r\n"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "A002 CAPABILITY\r\n"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "* CAPABILITY IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJ"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "A003 LOGOUT\r\n"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "* BYE Courier-IMAP server shutting down\r\nA003 OK LOGOUT comp"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "* OK Courier-IMAP ready. Copyright 1998-2001 Double Precisio"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "A001 LOGIN "kawamoto" ""\r\n"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "A001 NO Login failed.\r\n"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "* BYE Disconnected for inactivity.\r\n"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "* OK Courier-IMAP ready. Copyright 1998-2001 Double Precisio"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "A001 LOGIN "kawamoto" ""\r\n"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "A001 NO Login failed.\r\n"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "A002 LOGOUT\r\n"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: "* BYE Courier-IMAP server shutting down\r\nA002 OK LOGOUT comp"
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
IMAP: ----- IMAP: -----
IMAP:
IMAP: ""
IMAP:
なにか参考になることがあったらよろしくお願いします。