我正在使用UW IMAP c-client v。2007e,我找不到以下功能:我需要检索某个身体部位的标题。即,邮件消息包含多个正文部分,其中一个是附件,如下所示:
--_004_57D6D2035A40B8ECEBA59CB9C13F52A1334093MBXC18_
Content-Type: text/plain; name="func.txt"
Content-Description: func.txt
Content-Disposition: attachment; filename="func.txt"; size=604;
creation-date="Thu, 12 Aug 2010 18:41:40 GMT";
modification-date="Thu, 12 Aug 2010 18:41:40 GMT"
Content-Transfer-Encoding: base64
...blah-blah-blah in base64...
现在,我可以用imap_fetchbody()
检索blah-blah部分,但是我没有看到只能给我标题部分的函数(或者标题+正文,也没关系)。我可以获得整个消息文本,但是我必须将其自己解析为部分,我不想这样做。有没有办法让c-client为某个部分检索这个标题?
答案 0 :(得分:1)
您需要部件的MIME
部分。 From the IMAP RFC:
MIME部分说明符引用[MIME-IMB]标头 这一部分。
执行FETCH
的c-client功能是:
long imap_msgdata (MAILSTREAM *stream,unsigned long msgno,char *section,
unsigned long first,unsigned long last,STRINGLIST *lines,
long flags)
因此,如果您想要消息#8(例如)的第2.3部分中的标题,您可以将其称为:
imap_msgdata(stream, 8, "2.3.MIME", 0, 0, null, FT_PEEK);
(FT_PEEK
使邮件不会被标记为\Seen
。如果您要将邮件标记为已读,请将0
作为最后一个参数传递。)