Beim Verfassen von E-Mails in C# kann es vorkommen, dass Sie Dateien anhängen müssen. Traditionell wurden Dateien auf der Festplatte gespeichert, bevor sie der Anhangssammlung hinzugefügt wurden. Dieser Ansatz erfordert jedoch das Speichern von Dateien auf der Festplatte, was in bestimmten Szenarien ineffizient und unnötig sein kann.
Anstatt Dateien auf der Festplatte zu speichern, können Sie sie mithilfe von MemoryStream im Speicher speichern. Mit dieser Technik können Sie die Dateien ohne Zwischenschritte direkt an das MailMessage-Objekt anhängen.
Das folgende Codebeispiel zeigt, wie eine Datei aus MemoryStream an eine MailMessage angehängt wird:
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"; // I guess you know how to send email with an attachment // after sending email ms.Close();
Edit 1:
Sie können andere Dateitypen angeben, indem Sie verwenden System.Net.Mime.MimeTypeNames, wie z. B. System.Net.Mime.MediaTypeNames.Application.Pdf.
Stellen Sie basierend auf dem Mime-Typ sicher, dass die richtige Erweiterung in FileName angegeben ist, zum Beispiel „myFile. pdf".
Das obige ist der detaillierte Inhalt vonWie hänge ich Dateien aus einem MemoryStream an eine MailMessage in C# an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!