2016-06-17 11 views
0

以下添付ファイルのスクリーンショットを電子メールに表示されたとおりに追加しました。PDF添付ファイルをPDFとして正しく添付するにはどうすればよいですか?

すべてのPDFリーダーで正常に開きます。

実際のPDFとして表示するにはどうすればよいですか?私は小さな何かを見逃しているかのように、私は...

を感じてここに私のコードです:

public ActionResult SendInvoice(SendInvoiceViewModel model) 
{ 
    var Invoice = db.Invoices.FirstOrDefault(x => x.Id == model.Id); 
    MemoryStream ms = new MemoryStream(Invoice.Document); 

    Attachment Data = new Attachment(ms, MediaTypeNames.Application.Pdf); 
    ContentDisposition Disposition = Data.ContentDisposition; 
    Disposition.CreationDate = Invoice.Date; 
    Disposition.ModificationDate = Invoice.Date; 
    Disposition.ReadDate = Invoice.Date; 

    SendInvoiceMail(model.EmailAddress, Invoice.Number, model.EmailMessage, Data); 
} 

private void SendInvoiceMail(string emailAddress, string invoiceNumber, string message, Attachment attachment) 
{ 
    using (MailMessage Message = new MailMessage()) 
    { 
     Message.From = new MailAddress("[email protected]###########"); 
     Message.Subject = String.Format("Your store invoice {0}", invoiceNumber); 
     Message.To.Add(new MailAddress(emailAddress)); 
     Message.Body = message; 
     Message.Attachments.Add(attachment); 

     SmtpClient smtp = new SmtpClient("mail.############", 587); 
     smtp.Credentials = new NetworkCredential("[email protected]##########", "##########"); 
     smtp.Send(Message); 
    }; 
} 

だから私は何を逃したのですか?

Email Addtachment

+1

私はおそらく正しく表示されませんが、ファイル名はどこで設定しますか? – Mekap

+0

私はそうではありません...それはどこで行うべきかわかりませんが、下のOllie Jonesの回答ごとに、私は 'Attachment()'の正確なオーバーロードについてそれをすることを喜んでします。 – Ortund

答えて

1

Attachment()コンストラクタの3パラメータバージョンを使用してみてください。 2番目のパラメータでは、ファイル名を指定できます。そのファイル名の末尾は.pdfです。

0

は、添付ファイルのファイル名を含める

public ActionResult SendInvoice(SendInvoiceViewModel model) 
{ 
    var Invoice = db.Invoices.FirstOrDefault(x => x.Id == model.Id); 
    MemoryStream ms = new MemoryStream(Invoice.Document); 

    //Construct a file name for the attachment 
    var filename = string.Format("{0}.pdf", Invoice.Number); 

    Attachment Data = new Attachment(ms, filename, MediaTypeNames.Application.Pdf); 
    ContentDisposition Disposition = Data.ContentDisposition; 
    Disposition.CreationDate = Invoice.Date; 
    Disposition.ModificationDate = Invoice.Date; 
    Disposition.ReadDate = Invoice.Date; 

    SendInvoiceMail(model.EmailAddress, Invoice.Number, model.EmailMessage, Data); 
} 

を試してみてください。

関連する問題