ASP.net中的邮件附件

时间:2012-04-08 22:35:47

标签: asp.net vb.net

我试图在asp.net VB中添加邮件附件。

我可以发送邮件,直到我添加附件代码

Dim attch As Attachment = New Attachment("http://sitehere.com/Documents/file.jpg")
mail.Attachments.Add(attch)

我收到的错误URI格式不受支持。

为什么会这样做以及我能做些什么呢?

3 个答案:

答案 0 :(得分:3)

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构造函数。

答案 1 :(得分:1)

您无法直接从网址添加附件。您需要先下载文件,然后将其添加为附件。

您可以使用HttpWebRequest将文件作为流来获取,然后附加流。这样可以节省将文件存储在磁盘上的费用。

答案 2 :(得分:0)

如果您的服务器本地存在文件,并且您知道路径的文件夹,请不要使用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);

如果你真的想从另一个网址发送文件,你可以先使用HttpWebRequest下载该文件,然后将其作为Colin和Davy8发送。