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% 正しいとは限りませんが、それが一般的な考え方です。これにより、データがバイト配列にダウンロードされ、それらのバイトからメモリ ストリームが作成され、それが Attachment コンストラクタに渡されます。

于 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 に答える