2015-11-18 34 views
1

我從客戶用以兌換MSC郵輪優惠券的URL構建PDF文檔。我已經測試過,它構建PDF,將其顯示給用戶,並將其保存在文件夾目錄中。如何附加採用字符串格式的PDF文檔

DataTable dt = verifyRedemption(VoucherRemption); 

     if (dt.Rows.Count > 0) 
     { 
      string strVCode = dt.Rows[0]["voucherCode"].ToString(); 

      // save pdf document 
      string fileLoc = ""; 
      fileLoc += context.Server.MapPath("PDFs"); 
      fileLoc += "/"; 
      fileLoc += strVCode + ".pdf"; 

      doc.Save(fileLoc); 

      // close pdf document 
      doc.Close(); 

      MailHelper SendPdf = new MailHelper(); 
      SendPdf.SendEmail("MSC Cruises", "[email protected]", "Your voucher email", "Hi, <br/><br/> Please see your voucher ", doc.Pages.ToString()); 

      context.Response.Redirect(url); 
     } 

除了當IM發送電子郵件,我要送5種字符串格式,有沒有辦法來改變我送這是一個PDF附件? ?(文件是在數據表宣佈前,當我建立PDF

+0

什麼'MailHelper'? – 3dd

+0

我在我用來發送電子郵件的課程中,我試着指定它是一個附件,但它說它不能將其轉換爲文檔。 –

+0

「發送字符串格式」,這是什麼意思? –

回答

1

你爲什麼不使用System.Net.Mail命名空間

它提供以下功能:

MailMessage mail = new MailMessage("MailFrom", "MailTo"); 
//Then you could do sth to grab your files like before: 
List<Attachment> attachments = new List<Attachment>(); 
foreach(string attachmentPath in docs) 
{ 
    //Here you provide the path where you saved the pdf 
    attachments.Add(new Attachment(attachmentPath)); 
} 
mail.Subject = "Here comes the PDF"; 
mail.BodyEncoding = Encoding.UTF8; 
mail.Body = "Your message here"; 

SmtpClient mailer = new SmtpClient(); 
mailer.EnableSsl = true; //Depends on your mailserver if he forces to use SSL 

//(Same procedure as setting up a new Outlook Account...) 
mailer.Host = "mail.gmx.net"; //for example: 
mailer.Port = "587"; //Default SMTP-Port is 25 

mailer.UseDefaultCredentials = false; 
//Just your common LoginData for this server 
mailer.Credentials = new NetworkCredential("EmailUserName", "EmailPassword"); 

mailer.Send(mail); 

所有你需要做的是「找到」您以前保存到某個目錄的PDF文件,以獲得它的路徑,並從它創建一個附件。

希望它能幫助。

+0

Hi @FeDe,我如何找到下面指定的這些部分的信息 –

+0

SmtpClient mailer = new SmtpClient(); mailer.EnableSsl = true; mailer.Host =「你的郵件服務器」; mailer.Port =「您的郵件服務器端口; mailer.UseDefaultCredentials = false; mailer.Credentials =」Your credentials「; –

+0

我將編輯我的答案給我一個秒 –

相關問題