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