web-dev-qa-db-fra.com

MailKit enregistrer les pièces jointes

J'essaie d'enregistrer les pièces jointes du message

foreach(MimeKit.MimeEntity at message.Attachments) 
{
    at.WriteTo("nameFile");
}

Fichier enregistré, mais lorsque j'ouvre, le message d'erreur est corrompu ou trop volumineux. La taille de ce fichier est de 88 ko, mais la taille du fichier doit être égale à 55 ko.

Je pense que dans tous les fichiers de messages enregistrés.

Comment enregistrer uniquement la pièce jointe?

MailKit v1.2.0.0 MimeKit 1.2.0.0

16
sergpc

Vous enregistrez l'intégralité de l'objet MIME (y compris les en-têtes). Ce que vous devez faire est d'enregistrer le contenu.

foreach (var attachment in message.Attachments) {
    using (var stream = File.Create ("fileName")) {
        if (attachment is MessagePart) {
            var part = (MessagePart) attachment;

            part.Message.WriteTo (stream);
        } else {
            var part = (MimePart) attachment;

            part.Content.DecodeTo (stream);
        }
    }
}

J'espère que cela pourra aider.

38
jstedfast