我试图在asp.net VB中添加邮件附件。
我可以发送邮件,直到我添加附件代码
Dim attch As Attachment = New Attachment("http://sitehere.com/Documents/file.jpg")
mail.Attachments.Add(attch)
我收到的错误URI格式不受支持。
为什么会这样做以及我能做些什么呢?
答案 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发送。