go中imap中的行太长错误

我正在通过go-imap下载电子邮件。今天我收到了这个错误:


 imap: line too long ("* SEARCH 45081 45082 45083 45084 45085 45086 45087 45088 45089 45090 45091 45092 45093 45094 45095 45096 45097 45098 45099 45100 45101 45102 45103 45104 45105 45106 45107 45108 45109 45110 45111 45112 45113 45114 45115 45116 45117 45118 45119 45120 45121 45122 45123 45124 45125 45126 45127 45128 45129 45130 45131 45132 45133 45134 45135 45136 45137 45138 45139 45140 45141 45142 45143 45144 45145 45146 45147 45148 45149 45150 45151 45152 45153 45154 45155 45156 45157 45158 45159 45160 45161 45162 45163 45164 45165 45166 45167 45168 45169 45170 45171 45172 45173 45174 45175 45176 45177 45178 45179 45180 45181 45182 45183 45184 45185 45186 45187 45188 45189 45190 45191 45192 45193 45194 45195 45196 45197 45198 45199 45200 45201 45202 45203 45204 45205 45206 45207 45208 45209 45210 45211 45212 45213 45214 45215 45216 45217 45218 45219 45220 45221 45222 45223 45224 45225 45226 45227 45228 45229 45230 45231 45232 45233 45234 45235 45236 45237 45238 45239 45240 45241 45242 45243 45244 45245 45246 45247 45248 45249 4"...)

靠近:


cmd = ReportOK(c.UIDSearch("1:* UNSEEN"))

和下一个错误(在上述之后):


runtime error: index out of range

靠近:


set, _ := imap.NewSeqSet("")

set.AddNum(cmd.Data[0].SearchResults()...)

我在身份验证之后和解析消息之前的所有代码都在这里:


if c.Caps["QUOTA"] {

   ReportOK(c.GetQuotaRoot("INBOX"))

}


cmd = ReportOK(c.List("", ""))


c.Select("INBOX", false)


cmd = ReportOK(c.UIDSearch("1:* UNSEEN"))


set, _ := imap.NewSeqSet("")

set.AddNum(cmd.Data[0].SearchResults()...)


cmd, _ = c.UIDFetch(set, "RFC822", "RFC822.HEADER", "UID")

任何人都可以帮忙吗?我会很感激。


BIG阳
浏览 221回答 1
1回答

慕盖茨4494581

您似乎超出了此处的缓冲区大小,这是软件包文档中的注释:var BufferSize = 65536BufferSize设置发送和接收缓冲区的大小(以字节为单位)。这也是物理线路的长度限制。实际上,客户端应将行长度限制为大约 1000 字节,如RFC 2683 中所述。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go