2016-06-30 16 views
0

システムが送信する電子メールにNReco.PdfGeneratorで作成されたpdfを添付しようとしています。電子メールに動的に作成されたpdfを添付するC#.net Webページ

私が持っている: -

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

こんにちはOlivierはこれで正しいですが、私はちょうどそれを動作させるためにいくつかの他のものが必要でした。

私はasp.net webpagesを初めて使用しているので、まずSMTPClientを動作させるためにファイルの先頭に行を宣言する必要がありました。

@using System.Net.Mail; 

次に、smtp情報をWeb設定に入れます。

<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には、ストリームから添付ファイルを追加するメソッドがあります。したがって、MemoryStreamを使用してバイト[]を追加できます。

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 Webページのフレームワークでサイトを作っています。私はそれがSystem.Net.Mailクラスを持っているとは思わない。私はアタッチすることができません。 –

関連する問題