我試圖在asp.net VB中添加郵件附件。ASP.net中的郵件附件
我可以發送郵件罰款,直到我添加附件代碼,
Dim attch As Attachment = New Attachment("http://sitehere.com/Documents/file.jpg")
mail.Attachments.Add(attch)
我收到錯誤URI格式不被支持。
任何想法,爲什麼這是我能做些什麼呢?
我試圖在asp.net VB中添加郵件附件。ASP.net中的郵件附件
我可以發送郵件罰款,直到我添加附件代碼,
Dim attch As Attachment = New Attachment("http://sitehere.com/Documents/file.jpg")
mail.Attachments.Add(attch)
我收到錯誤URI格式不被支持。
任何想法,爲什麼這是我能做些什麼呢?
Attachment
類需要文件系統上文件的路徑或Stream
。
嘗試:
Dim data As Byte() = New WebClient().DownloadData("http://sitehere.com/Documents/file.jpg")
Dim attachment As New Attachment(New MemoryStream(data), "file.jpg")
就是我盡我所能來翻譯從C#到VB.NET這樣的語法可能不是100%正確的,但這是一般的想法。這會將數據下載到一個字節數組中,然後從這些字節中創建一個內存流並將其傳遞給Attachment構造函數。
您無法直接從URL添加附件。您需要先下載文件,然後將其作爲附件添加。
您可以使用HttpWebRequest
將文件作爲流獲取,然後附加流。這節省了必須將文件存儲在磁盤上。
該文件已在系統中,其路徑作爲URL存儲在數據庫中。我想將選定的文件從數據庫附加到郵件,這是不可能的? – user1162628 2012-04-08 22:45:25
如果您有一個映射到本地路徑的URL,則只需要反轉該映射,然後就可以添加原始文件。 – 2012-04-08 22:47:31
如果有本地文件在您的服務器和您知道該路徑的文件夾中,不要使用該URI,
Dim eMessage As New MailMessage
Dim attachLabel As Attachment
Dim location As String
loction= Server.MapPath("Documents\\file.jpg")
attachLabel = New Attachment(loction)
eMessage .Attachments.Add(attachLabel);
如果你真的想從另一個URL發送一個文件,你可以使用HttpWebRequest
先下載,然後以Colin和Davy8的方式發送。
這樣做。非常感激。 – user1162628 2012-04-08 23:35:47
@Tim感謝您的語法修復。 – Davy8 2012-04-09 01:14:16