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.
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();
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!