107 votes

Comment ajouter une pièce jointe à un email à partir d'un tableau d'octets?

J'ai un byte[] avec le contenu du fichier. Je voudrais l'envoyer en pièce jointe en utilisant System.Net.Mail .

J'ai remarqué que la classe de pièces jointes a 1 surcharge qui accepte un flux.

 Attachment att = new Attachment(Stream contentStream,string name);
 

Est-il possible de passer les byte[] travers cette surcharge?

203voto

Jon Skeet Points 692016

Manière la plus simple:

 Attachment att = new Attachment(new MemoryStream(bytes), name);
 

Notez que, sauf si vous faites des choses géniales avec des opérations asynchrones, MemoryStream peut être laissé en sécurité, ce qui peut vous rendre la vie plus facile. Certes, rien ne garantit que cela sera vrai à l'avenir, mais je pense qu'il est peu probable que cela change. Je ne vois aucune indication quant à savoir si l'élimination de la pièce jointe dispose de son flux :(

34voto

Oded Points 271275

Vous devez convertir les byte[] en MemoryStream utilisant la surcharge du constructeur MemoryStream appropriée.

 Attachment att = new Attachment(new MemoryStream(myBytes), name);
 

Notez que le paramètre name du constructeur de Attachment spécifie le nom du type de contenu de la pièce jointe, et non le nom de la pièce jointe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X