Tôi đang cố gắng tìm hiểu cách sử dụng thư viện MailKit nhưng tôi đang đấu tranh để lấy các tệp đính kèm. Cho đến nay mã của tôi sẽ mở một hộp thư, đi qua từng thư và lưu trữ dữ liệu như người gửi, chủ đề, nội dung, ngày vv nhưng tôi không thể xử lý các tệp đính kèm.Lưu tệp đính kèm bằng thư viện MailKit?
Tôi đã cố gắng sử dụng các giải pháp của người khác được tìm thấy ở đây, trên github và các trang web khác nhưng tôi vẫn không hiểu chính xác những gì họ đang làm trong mã của họ và khi tôi đến gần. vì vậy tôi bị căng thẳng và xóa tất cả mã. Tôi không có nghĩa là có vẻ lười biếng nhưng tôi rất thích nếu ai đó có thể giải thích làm thế nào tôi có thể đạt được điều này. Về cơ bản, tôi đang cố gắng xây dựng ứng dụng thư cho ứng dụng biểu mẫu web.
Dưới đây là mã của tôi, như vậy là bạn có thể nhìn thấy tôi khá tránh khỏi thất bại :)
// Open the Inbox folder
client.Inbox.Open(FolderAccess.ReadOnly, cancel.Token);
//get the full summary information to retrieve all details
var summary = client.Inbox.Fetch(0, -1, MessageSummaryItems.Full, cancel.Token);
foreach (var msg in summary)
{
//this code originally downloaded just the text from the body
var text = msg.Body as BodyPartText;
//but I tried altering it so that it will get attachments here also
var attachments = msg.Body as BodyPartBasic;
if (text == null)
{
var multipart = msg.Body as BodyPartMultipart;
if (multipart != null)
{
text = multipart.BodyParts.OfType<BodyPartText>().FirstOrDefault();
}
}
if (text == null)
continue;
//I hoped this would get the messages where the content dispositon was not null
//and let me do something like save the attachments somewhere but instead it throws exceptions
//about the object reference not set to an instance of the object so it's very wrong
if (attachments.ContentDisposition != null && attachments.ContentDisposition.IsAttachment)
{
//I tried to do the same as I did with the text here and grab the body part....... but no
var attachedpart = client.Inbox.GetBodyPart(msg.Index, attachments, cancel.Token);
}
else
{
//there is no plan b :(
}
// this will download *just* the text
var part = client.Inbox.GetBodyPart(msg.Index, text, cancel.Token);
//cast main body text to Text Part
TextPart _body = (TextPart)part;
Chính xác, bạn muốn làm gì? Bạn chỉ muốn tải xuống các tệp đính kèm và lưu chúng vào đĩa (hoặc một số địa điểm)? Điều gì về văn bản chính của cơ thể? – jstedfast