« MediaWikiのバージョンアップ | メイン | メガラプトル量産機 »

SquirrelMailで送信時にエラーメッセージが表示される

SquirrelMailを使ってメールを送信すると次のようなエラーが出されて、送信済みボックスや、ドラフトボックスにメールが収納されないという問題。

エラー:
エラー: メッセージを追加できません INBOX.Sent.
サーバの応答: Error in IMAP command received by server.

もしサーバーのPHPが 5.1.0以上であれば、それが原因です。(メールボックスの容量が足りない、パーミッションが不適切、フォルダが存在しないなどでも出ますが、どれにも該当しない場合は疑ってください) なお、この状態でもメールは送信されています。

対処方法
functions/imap_general.php を開いて次の関数の記述を検索して下さい。

function sqimap_append ($imap_stream, $sent_folder, $length) {

その次のfputsをコメントアウト
// fputs ($imap_stream, sqimap_session_id() . " APPEND \"$sent_folder\" (\\Seen) \{$length}\r\n");

次のように書き換える
fputs ($imap_stream, sqimap_session_id() . " APPEND \"$sent_folder\" (\\Seen) {".$length."}\r\n");

で解決。

BUG tracker にありますが、なかなか見つからないものです。

発覚の経緯

Wikiにログイン出来ませんってメールを携帯アプリで見て、こそこそっと対処して、こそこそっとSquirrelMailで返信書いて送ろうとしたらエラー表示されてメール消失w 自爆メール送ったら送信されていたので多分届いてはいると思います。メールは見れたらいい。返事は帰ってからと思っていたので、テストしきれてませんでした。