2011-03-23 123 views
0

我正在嘗試使用MailMessage類發送附件。使用MailMessage時從附件名稱中刪除文件路徑

var attachment = new Attachment(ConfigurationManager.AppSettings["pathToPDFs"] + pdfItem.Value); 
mailMessage.Attachments.Add(attachment); 

這增加的文件作爲附件,但是當我收到我的電子郵件的文件名是

//Inetpub//Path//To//pdf//name.pdf應該只是name.pdf。

我哪裏錯了?

ConfigurationManager.AppSettings["pathToPDFs"]設置爲C://Inetpub//Path//To//pdf// pdfItem.Value是name.pdf

+0

難道你不是指:C:\\ inetpub \\ path \\ to \\ pdf \\? – 2011-03-23 15:05:10

+0

@Jack沒有我的路徑//不是\\ – Sally 2011-03-23 15:14:15

+0

@Jack將//更改爲\\修復了問題。添加一個答案,我會接受它。 – Sally 2011-03-23 15:18:46

回答

1

當您收到電子郵件附件,它是正確的附件?

含義,你真的得到name.pdf嗎?

而且,你的位置應該是:C:\\inetpub\\path\\to\\pdf\name.pdf

你試過硬編碼的文件的位置,看是否能解決問題了嗎?

+0

是的,它是電子郵件中的正確附件 – Sally 2011-03-23 15:12:47

1

我必須先承認,我猜測。

構造函數可能使用完整路徑作爲名稱。如果在創建對象後設置了name屬性(如果可能的話)。

var attachment = new Attachment(ConfigurationManager.AppSettings["pathToPDFs"] + pdfItem.Value); 

attachment.Name = pdfItem.Value; 

mailMessage.Attachments.Add(attachment); 
0

我遇到了同樣的問題,後來發現這是因爲我使用了文件的相對路徑,即../../name.pdf。如果我獲得了創建附件的完整路徑,那麼電子郵件中的附件文件名不包含路徑。

string full_file_name = Path.GetFullPath("../../name.pdf"); 
Attachment attachment = new Attachment(full_file_name); 
mailMessage.Attachments.Add(attachment); 
相關問題