Maison >développement back-end >C++ >Comment joindre des fichiers à des e-mails à l'aide de MemoryStream en C# ?

Comment joindre des fichiers à des e-mails à l'aide de MemoryStream en C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-02 16:06:39538parcourir

How to Attach Files to Emails using MemoryStream in C#?

Utiliser MemoryStream pour joindre des fichiers à MailMessage en C

Lors de la rédaction d'e-mails, il est souvent nécessaire de joindre des fichiers. En règle générale, les développeurs enregistrent le fichier sur le disque à l'aide de FileStream, puis le joignent à l'aide de la méthode MailMessage.Attachments.Add(). Cependant, une approche alternative consiste à stocker le fichier en mémoire à l'aide de MemoryStream et à le transmettre directement à un objet Attachment.

Solution

Pour y parvenir, suivez les étapes décrites dans l'exemple de code ci-dessous :

// Create a MemoryStream and populate it with the file content
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;

// Define the file type based on MIME type
System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType(System.Net.Mime.MediaTypeNames.Text.Plain);
ct.Parameters.Add("name", "myFile.txt"); // Set the attachment filename, including extension

// Create an Attachment object from the MemoryStream
System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment(ms, ct);

// Attach the file to the email message
mailMessage.Attachments.Add(attach);

// Send the email, assuming you have an existing `mailMessage` object
mailMessage.Send();

// Close the MemoryStream after sending the email
ms.Close();

Personnalisation

En fonction du type de fichier, vous pouvez spécifier différents types MIME. Par exemple, pour joindre un fichier PDF, utilisez System.Net.Mime.MediaTypeNames.Application.Pdf.

Assurez-vous que la propriété FileName de l'objet Attachment correspond au type MIME spécifié. Dans l'exemple ci-dessus, nous spécifions "myFile.txt" lors de l'utilisation du type MIME MediaTypeNames.Text.Plain.

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