带空格的PHP imap和文件夹名称

标签 php imap

如何处理包含空格的文件夹名称?

在每个需要文件夹名称的函数中,我都使用这样的字符串:

{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"- 失败

最佳答案

解决了!

根据 RFC3501,邮箱命名 (5.1):

Any character which is one of the atom-specials (see the Formal Syntax) will require that the mailbox name be represented as a quoted string or literal.

包括空间:

atom-specials = "(" / ")" / "{" / SP / CTL / list-wildcards / quoted-specials / resp-specials

所以,正确的文件夹字符串应该是:

{server}"INBOX.folder with spaces"

但在我的例子中,正确的字符串是......

{server}INBOX.folder with spaces

不知道为什么,PHP 的imap 函数似乎与RFC 不完全兼容。或者只是我无法阅读和理解 rfc。

关于带空格的PHP imap和文件夹名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11451986/

相关文章:

java - 没有这样的字段错误: SIZE when fetching email through IMAP

php - IMAP 已安装但无法工作?

javascript - 如何将 JavaScript 值添加到 mySQL 表中?

php - 如何使用 php 和 mysqli 在一次事务中上传多个图像文件?

php - 在 TWIG 中渲染多维数组

cocoa - 每当打开新邮件时,IMAP 应用程序(使用 Pantomime)就会崩溃

php - 纯文本上的简单 HTML DOM str_replace

PHP 将变量数组作为分隔变量进行访问

java - 使用 JavaMail 如何进行搜索并获取带有我可以引用的 UID 的消息数组?

objective-c - iOS 中是否有用于 POP/IMAP 的 API?