Ich erstelle dynamisch eine Reihe von verschiedenen Arten von Dateien auf der Grundlage einer GridView in ASP.NET - eine Excel-Tabelle und eine HTML-Datei. Ich mache diesen Code so verwenden (dies ist nur für die Excel-Tabelle):Senden von E-Mails mit Anlagen programmatisch in ASP.NET
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=InvoiceSummary" + Request.QueryString["id"] + ".xls");
Response.Charset = "";
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
contents.RenderControl(htmlWrite);
//GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
Ich mag würde Benutzer geben, um die Optionen der erzeugten Datei als Anhang per E-Mail an entweder eine E-Mail-Adresse, die sie angeben oder eine verknüpfte mit ihrem Konto in der Datenbank. Aber ich möchte nicht, dass der Benutzer die Datei speichern muss, und fügen Sie sie dann in einem Formular an - ich möchte die generierte Datei automatisch anhängen. Ist das möglich und wie einfach ist es?
Natürlich werde ich die System.Net.Mail-Klasse verwenden, um Mail zu senden ... wenn es sowieso möglich ist!
Die MailMessage-Klasse verfügt über eine Attachments-Eigenschaft, die dies tut. Erstellen Sie einfach ein neues Attachment (kann auf einem MemoryStream basieren) und hängen Sie es an (z. B. MailMessage.Attachments.Add()). – Zachary