gpt4 book ai didi

php - 如何准备APPEND IMAP命令?

转载 作者:行者123 更新时间:2023-12-03 11:57:10 26 4
gpt4 key购买 nike

我试图使用PHP在GMail中以编程方式创建草稿。

我正在使用VivOAuthIMAP库成功使用OAuth进行IMAP登录,但是该库仅支持一些命令来获取数据。我想扩展该库以支持APPEND命令并实现我的目的:创建草稿。

但是我对IMAP的东西非常迷失,而且我不知道如何构建有效的IMAP APPEND命令,我总是收到“A3 BAD无法解析命令错误”或“A3 BAD [CLIENTBUG]太多参数命令:APPEND”。我正在尝试遵循RFC2060的示例:

 C: A003 APPEND saved-messages (\Seen) {310}
C: Date: Mon, 7 Feb 1994 21:52:25 -0800 (PST)
C: From: Fred Foobar <foobar@Blurdybloop.COM>
C: Subject: afternoon meeting
C: To: mooch@owatagu.siam.edu
C: Message-Id: <B27397-0100000@Blurdybloop.COM>
C: MIME-Version: 1.0
C: Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
C:
C: Hello Joe, do you think we can meet at 3:30 tomorrow?
C:
S: A003 OK APPEND completed

我认为问题在于我没有正确构建多行消息。例如:

这有效:
$this->writeCommannd("A" . $this->codeCounter, "APPEND \"$mailbox\" (\Seen) {$size} \"Subject: hello world\"");

但是这些不是(如果我添加空格,则IMAP会将其解释为新的参数,而我会得到太多的参数)。
// A3 BAD [CLIENTBUG] Too many arguments for command: APPEND
$this->writeCommannd("A" . $this->codeCounter, "APPEND \"$mailbox\" (\Seen) {$size} \"Subject: hello world\" \"To: myemail@email.com\"");

// A3 BAD Could not parse command
$this->writeCommannd("A" . $this->codeCounter, "APPEND \"$mailbox\" (\Seen) {$size} \"Subject: hello world\"\r\n\"To: myemail@email.com\"");

最佳答案

两件事情:

  • 大小后需要一个CRLF。主体不是命令的一部分。
  • 除非服务器支持LITERAL +扩展名,否则您需要等待服务器通知您继续设置大小。

  • 示例对话框:
    C: A01 APPEND INBOX {100}\r\n
    S: + go ahead\r\n
    C: {message here}

    带有LITERAL +扩展名:
    C: A01 APPEND INBOX {100+}\r\n
    C: {message here}

    关于php - 如何准备APPEND IMAP命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21333827/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com