Maison >développement back-end >C++ >Comment puis-je joindre des fichiers d'un MemoryStream à un MailMessage ?

Comment puis-je joindre des fichiers d'un MemoryStream à un MailMessage ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-04 13:32:40406parcourir

How Can I Attach Files from a MemoryStream to a MailMessage?

Accès aux flux de mémoire pour les pièces jointes dans MailMessages

Joindre des fichiers d'un MemoryStream à un MailMessage peut éliminer le besoin de stockage de fichiers intermédiaire. Cet article explore une solution à ce problème.

Pour y parvenir, un MemoryStream est créé et rempli avec le contenu du fichier à l'aide d'un StreamWriter. Une fois le fichier en mémoire, sa position est réinitialisée au début.

Un MimeContentType est ensuite défini en fonction du type de fichier (par exemple, text/plain pour du texte brut). Enfin, une nouvelle pièce jointe est créée à l'aide de MemoryStream et un nom de fichier lui est attribué.

Voici un exemple d'extrait de code :

System.IO.MemoryStream ms = new System.IO.MemoryStream();
System.IO.StreamWriter writer = new System.IO.StreamWriter(ms);
writer.Write("Hello its my sample file");
writer.Flush();
writer.Dispose();
ms.Position = 0;

System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Text.Plain);
System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment(ms, ct);
attach.ContentDisposition.FileName = "myFile.txt";

Cette approche vous permet de joindre des fichiers directement à partir de la mémoire, éliminant ainsi le besoin pour le stockage intermédiaire des fichiers sur disque. Vous pouvez spécifier différents MimeTypes pour s'adapter à différents formats de fichiers et garantir des extensions de nom de fichier appropriées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn