对于一个应用程序,我使用了Gmail API,该API成功地从Google Developers中使用的Gmail API中检索了附件。但是有些消息与其余消息不同,没有html消息(该消息也是base64编码的),附件的“标签”也不同:
此方法有效,API可以找到附件:
--000000000000ff7fdb05837ee23d--
--000000000000ff7fe105837ee241
Content-Type: application/pdf; name="inv20190275.PDF"
Content-Disposition: attachment; filename="inv20190275.PDF"
Content-Transfer-Encoding: base64
Content-ID: <16957c99f59399ae79b1>
X-Attachment-Id: 16957c99f59399ae79b1
为此,找不到附件(第一行可能是之前的行):
----boundary_141_b8719500-62b8-4b0e-9018-36676671a768--
----boundary_140_e2c718ec-c2f4-40e5-a244-18917f7e1c5c--
----boundary_142_795676fe-01cb-4744-ac4f-c90f6a4e8843
Content-Type: multipart/mixed;
boundary="--boundary_143_6415c656-2b4b-4837-9481-ada707bbdb52"
----boundary_143_6415c656-2b4b-4837-9481-ada707bbdb52
Content-Type: application/octet-stream; name="3317608.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
我使用的代码:
private void SaveAttachment(Message email)
{
Message message = service.Users.Messages.Get(mailadres, email.Id).Execute();
IList<MessagePart> parts = message.Payload.Parts;
foreach (MessagePart part in parts)
{
//For every email I get an empty messagebox (if no attachment found).
MessageBox.Show("attachmentId: " + part.Body.AttachmentId);
if (!string.IsNullOrEmpty(part.Filename))
{
//No attachment found, so no messagebox here.
MessageBox.Show("filename: " + part.Filename);
string attId = part.Body.AttachmentId;
}
}
}
如何使我的代码重新识别附件存储在邮件的不同部分中的事实?看来它没有存储在Message.Payload.Parts中。
对于一个应用程序,我使用了Gmail API,该API成功地从Google Developers中使用的Gmail API中检索了附件。但是由于未知原因,API指出在某些情况下没有附件,其中附件在Gmail中可见且可打开。该代码指出:
我的代码是:
private void SaveAttachment(Message email)
{
Message message = service.Users.Messages.Get(mailadres, email.Id).Execute();
IList<MessagePart> parts = message.Payload.Parts;
foreach (MessagePart part in parts)
{
//For every email I get an empty messagebox (if no attachment found).
MessageBox.Show("attachmentId: " + part.Body.AttachmentId);
if (!string.IsNullOrEmpty(part.Filename))
{
//No attachment found, so no messagebox here.
MessageBox.Show("filename: " + part.Filename);
string attId = part.Body.AttachmentId;
}
}
}
电子邮件看起来像regulair电子邮件。有些是通过“ flowmailer.net”发送的,有些只是通过正常外观的电子邮件地址发送的。
我没有在网上找到类似的问题,也不知道在哪里寻找问题的原因。这是错误还是我做错了/不完整的事情?