0

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

在添加附件代码之前,我可以正常发送邮件,

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

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

任何想法为什么会这样以及我能做些什么?

4

3 回答 3

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% 正确,但这是一般的想法。这会将数据下载到一个字节数组中,然后从这些字节创建一个内存流并将其传递给附件构造函数。

于 2012-04-08T22:41:54.107 回答
1

您不能直接从 URL 添加附件。您需要先下载文件,然后将其添加为附件。

您可以使用HttpWebRequest将文件作为流获取,然后附加流。这样就不必将文件存储在磁盘上。

于 2012-04-08T22:41:31.007 回答
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);

如果您真的想从另一个 url 发送文件,您可以HttpWebRequest先下载该文件,然后以 Colin 和 Davy8 的名称发送。

于 2012-04-08T23:16:29.997 回答