我正在尝试在 asp.net VB 中添加邮件附件。
在添加附件代码之前,我可以正常发送邮件,
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% 正确,但这是一般的想法。这会将数据下载到一个字节数组中,然后从这些字节创建一个内存流并将其传递给附件构造函数。
您不能直接从 URL 添加附件。您需要先下载文件,然后将其添加为附件。
您可以使用HttpWebRequest
将文件作为流获取,然后附加流。这样就不必将文件存储在磁盘上。
如果您在服务器本地和知道路径的文件夹中有文件,请不要使用 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 的名称发送。