3

スペースを含むフォルダ名を処理するには?

フォルダー名を必要とするすべての関数で、次のような文字列を使用しています。

{server.address.com:port}"INBOX.abc def"

しかし、それはphpをクラッシュさせます:

Can't subscribe to mailbox "INBOX.abc def": no such mailbox

文字列を次のように変更します。

{server.address.com:port}INBOX."abc def"

何も変わらず、まだエラーです。名前にスペースが含まれるフォルダーを開く/チェックする方法を教えてください。

編集: 質問が更新され、エラーメッセージが少し改善されました

私が試したフォルダ文字列の組み合わせ:

  • "INBOX.abc def" - 失敗、
  • INBOX."abc def" - 失敗,
  • \INBOX\abc def - 失敗、
  • "\INBOX\abc def" - 失敗
4

3 に答える 3

2

解決しました!

RFC3501によると、メールボックスの命名(5.1):

アトムスペシャルの1つである文字(正式な構文を参照)では、メールボックス名を引用符で囲まれた文字列またはリテラルとして表す必要があります。

これにはスペースが含まれます。

アトム-スペシャル="(" / ")" / "{" / SP /CTL/リスト-ワイルドカード/引用-スペシャル/resp-スペシャル

したがって、正しいフォルダ文字列は次のようになります。

{サーバー}"スペース付きのINBOX.folder"

しかし、私の場合、正しい文字列は....です。

{server}INBOX.folderとスペース

理由はわかりませんが、PHPのimap関数はRFCと完全には互換性がないようです。または、RFCを読んで理解することはできません。

于 2012-07-13T07:46:32.093 に答える
1

ディレクトリを参照するときに、この構文を試すことができます: "\INBOX\folder with space"

したがって、このソリューションは「自分のマシンで動作する」証明書を取得します。どのようなエラー コードが表示されますか?

于 2012-07-12T12:46:28.100 に答える
0

「\INBOX\abc def」の方が良いですが、INBOX が間違った場所にある可能性があります。
それは「htdocs」にあるに違いないと思います!
フォルダではなく、ファイルにのみアクセスできます。
例: 「\INBOX\abc def\file.txt」

于 2012-07-13T09:22:50.030 に答える