Je génère dynamiquement un certain nombre de types de fichiers différents en fonction d'un GridView dans ASP.NET - une feuille de calcul Excel et un fichier HTML. Je le fais en utilisant ce code (ce qui est juste pour la feuille de calcul Excel):Envoi de courrier avec pièces jointes par programme dans 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();
Je voudrais donner aux utilisateurs les options d'envoyer le fichier généré en tant que pièce jointe soit une adresse e-mail ils précisent ou un lien avec leur compte sur la base de données. Mais je ne veux pas que l'utilisateur doive enregistrer le fichier, puis l'attacher dans un formulaire - je voudrais attacher automatiquement le fichier généré. Est-ce possible et c'est facile?
Bien sûr, je vais utiliser la classe System.Net.Mail pour envoyer du courrier ... si c'est possible quand même!
La classe MailMessage possède une propriété Attachments qui va le faire. Créez simplement une nouvelle pièce jointe (peut être basée sur un MemoryStream), puis joignez-la (par exemple MailMessage.Attachments.Add()). – Zachary