Ich erstelle ein PDF mit iutxtsharp. Die PDF-Datei wird normalerweise erstellt und an den Browser gesendet, damit der Benutzer die Datei einfach auf seinem Computer speichern kann. Jetzt möchte ich dieses generierte PDF automatisch auch per Email versenden. Ich habe versucht, das Dokument zu konvertieren, bevor es in den Kontext und an eine E-Mail anhängen, aber ohne Erfolg. Mein Code ist:E-Mail-Anhang senden erstellt in HttpContext.Current.Response
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "application/pdf";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=mypdf.pdf");
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter stringWriter = new StringWriter();
HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
string imagepath = Server.MapPath(".") + "/assets/myimages/myimage.png";
Document Doc = new Document(PageSize.A4, 10f, 10f, 10f, 10f);
HTMLWorker htmlparser = new HTMLWorker(Doc);
PdfWriter pdfwriter= PdfWriter.GetInstance(Doc, HttpContext.Current.Response.OutputStream);
Doc.Open();
iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(imagepath);
image.ScalePercent(106f,90f);
Doc.Add(image);
//adding elements using itextshart pdf
AddPDf(pdfwriter,Doc);
//to add html in pdf
// htmlparser.Parse(stringReader);
OnEndPage(pdfwriter, Doc);
Doc.Close();
email_send(Doc.ToString());
HttpContext.Current.Response.End();
public void email_send(string filename)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("[email protected]");
mail.To.Add("[email protected]");
mail.Subject = "Test Mail - 1";
mail.Body = "mail with attachment";
System.Net.Mail.Attachment attachment;
attachment = new System.Net.Mail.Attachment((Server.MapPath(filename.ToString())));
mail.Attachments.Add(attachment);
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "mypass");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
}
Der Fehler, den ich bekommen ist:
Could not find file
{"Could not find file 'C:\\Admin\\iTextSharp.text.Document'.":"C: \\Admin\\iTextSharp.text.Document"}
_ "aber mit keinem Erfolg" _ - bitte lesen [fragen] und erklären, was _does_ passiert. Warum rufen Sie 'Response.End()' auf, haben Sie versucht, die Dokumentation für diese Methode zu lesen? – CodeCaster
Ich habe meinen Code bearbeiten. Bitte überprüfen Sie – focus
Jetzt sollten Sie den Titel ändern, da Sie keine E-Mail nach Response.End mehr senden. Aber was ist los? E-Mail wird nicht gesendet? Dokument ist nicht angehängt? –