2013-09-24 54 views
0

我想從C#發送一封電子郵件(一個WCF服務更具體),它有一個附件。附件不在本地文件系統中,因此它將具有「http:// ...」的路徑等。如何將遠程文件附加到C#中的電子郵件?

當前,如果我嘗試傳遞url,則會得到一個錯誤,路徑的格式不受支持。

Attachment attachment; 
      attachment = new Attachment("https://assets.conestogac.on.ca/wiki/gatewayprocess.png", MediaTypeNames.Application.Octet); 
      message.Attachments.Add(attachment); 

服務器在處理請求時遇到錯誤。異常消息是'不支持給定路徑的格式。'。查看服務器日誌獲取更多詳細信

我會如何將遠程文件附加爲電子郵件附件?

+1

你應該下載首先文件。 –

+1

如果可能的話,郵件下載鏈接可能是收件箱友好的。 –

回答

2

您需要使用HttpClient或HttpWebRequest to download the remote file to a Stream`,然後附加下載的數據。

0

也許你可以試試下面的代碼:

它會添加附件作爲內嵌附件


string attachmentPath = Environment.CurrentDirectory + @"\test.png"; 
    Attachment inline = new Attachment(attachmentPath); 
    inline.ContentDisposition.Inline = true; 
    inline.ContentDisposition.DispositionType = DispositionTypeNames.Inline; 
    inline.ContentId = contentID; 
    inline.ContentType.MediaType = "image/png"; 
    inline.ContentType.Name = Path.GetFileName(attachmentPath); 

    message.Attachments.Add(inline); 
+0

這與問題無關 – SLaks

1

嘗試類似的東西:

var tempFileName = @"c:\tempFolder\gatewayprocess.png";   
System.Net.WebClient webClient = new System.Net.WebClient(); 
webClient.DownloadFile("https://assets.conestogac.on.ca/wiki/gatewayprocess.png", tempFileName); 
message.Attachments.Add(new Attachment(tempFileName)); 
+0

雖然我接受了其他答案,但我想指出,這或多或少是我最終做的。 –

相關問題