2016-06-30 3 views
0

NReco.PdfGenerator로 작성한 pdf를 시스템에서 보내는 전자 메일에 첨부하려고합니다.전자 메일에 동적으로 작성한 pdf 첨부.

내가 가지고있다 -

Response.ContentType = "application/pdf"; 
    Response.AddHeader("Content-Disposition", "attachment; filename=test.pdf"); 
    var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter(); 
    var pdfBytes = htmlToPdf.GeneratePdfFromFile("http://{siteName}/templates/PasswordResetEmail2.cshtml", null); 
    Response.BinaryWrite(pdfBytes); 

그리고이에 밖으로 팝업 저장 창으로 PDF를 넣어 작동합니다.

는하지만 난 내 시스템 이메일에이를 수

WebMail.Send(
    to: email, 
    subject: "Please see attached invoice", 
    body: BodyTemplate, 
    isBodyHtml: true, 
    filesToAttach: invoice.pdf); 

당신이 도움이 될 수 있습니다 희망합니다.

답변

0

안녕하세요 올리비에가 아래에 맞았습니다. 제대로 작동하려면 몇 가지 다른 것들이 필요했습니다.

나는 asp.net 웹 페이지를 처음 사용하기 때문에 SMTPClient가 작동하도록 파일의 맨 위에 선을 선언해야했습니다.

@using System.Net.Mail; 

그런 다음 웹 구성에 smtp 정보를 입력하십시오.

<system.net> 
    <mailSettings> 
     <smtp> 
     <network host="host_name" port="25" userName="user name" password="password" defaultCredentials="false" /> 
     </smtp> 
    </mailSettings> 

그런 다음 이메일을 만드십시오.

SmtpClient smtpClient = new SmtpClient(WebMail.SmtpServer); 
      MailMessage email1 = new MailMessage(); 
      email1.IsBodyHtml = true; 
      email1.From = new MailAddress("[email protected]"); 
      email1.To.Add(new MailAddress(sendemail)); 
      //email1.CC.Add(new MailAddress("[email protected]")); 
      email1.Body = BodyTemplate; 
      email1.Subject = "Please reset your password"; 

      var stream = new System.IO.MemoryStream(pdfBytes); 
      email1.Attachments.Add(new Attachment(stream, "invoice.pdf")); 
      smtpClient.Send(email1); 
0

WebMail.Send()는 하드 드라이브에서만 파일을 보냅니다.

System.Net.Mail.SmtpClient를 사용하여 MailMessage를 보낼 수 있습니다. MailMessage에는 Stream로부터 첨부 파일을 추가하는 메소드가있어, MemoryStream를 사용하는 byte []입니다.

SmtpClient smtpClient = new SmtpClient(WebMail.SmtpServer); 
MailMessage email = new MailMessage(...); 
var stream = new System.IO.MemoryStream(pdfBytes); 
email .Attachments.Add(new Attachment(stream, "invoice.pdf")); 
smtpClient.Send(email); 
+0

System.Net.Mail.SmtpClient를 사용하는 방법을 잘 모르겠습니다. asp.net 웹 페이지 프레임 워크에서 사이트를 만들고 있습니다. 나는 이것에 System.Net.Mail 클래스가 있다고 생각하지 않는다. 그리고 나는 붙잡을 수 없다. –

관련 문제