3

私はこの質問からこのコードを持っています:

Memory Stream を使用して PDF ファイルを system.net.mail.attachment として生成する

メモリ内にメールの添付ファイルを作成するのに役立ちます。

Imports System.IO
Imports System.Net.Mail
Imports System.Text.ASCIIEncoding
Imports System.net.Mime

Public Sub SendMail(ByVal att As String, Optional ByVal filename As String _
    = "Attachment.csv")

    Dim sendMail As New SmtpClient
    Dim mail As New MailMessage

    Using MemoryStream = New MemoryStream

        If att.Length <> 0 Then

            Dim data As Byte() = ASCII.GetBytes(att)

            MemoryStream.Write(data, 0, data.Length)
            MemoryStream.Seek(0, SeekOrigin.Begin)
            MemoryStream.Position = 0

            Dim content As New Net.Mime.ContentType()

            content.MediaType = MediaTypeNames.Application.Octet
            content.Name = filename

            Dim Attach As Attachment
            Attach = New Attachment(MemoryStream, content)
            mail.Attachments.Add(Attach)
        End If

        sendMail.DeliveryMethod = SmtpDeliveryMethod.Network
        sendMail.Host = "SERVER"
        sendMail.UseDefaultCredentials = False

        sendMail.Credentials = New System.Net.NetworkCredential("UN", "PW")
        sendMail.Send(mail)
    End Using
End Sub

次のエラーが表示されます。

アクセス可能な 'New' を縮小変換なしで呼び出すことができないため、オーバーロードの解決に失敗しました:

'Public Sub New(contentStream As System.IO.Stream, contentType As System.Net.Mime.ContentType)': 引数一致パラメーター 'contentStream' は 'Object' から 'System.IO.Stream' に絞り込まれます。

'Public Sub New(fileName As String, contentType As System.Net.Mime.ContentType)': パラメーター 'fileName' に一致する引数は、'Object' から 'String' に絞り込まれます。

Dim Attach As Attachment
Attach = New Attachment(MemoryStream, content)

この行で。

どうすればこれを修正できますか?

4

2 に答える 2

3

またはこれを使用します

Using MemoryStream As MemoryStream = new MemoryStream()
于 2012-10-22T12:59:40.093 に答える
3

Using ステートメントでは、MemoryStream という名前の変数を、MemoryStream ではなくオブジェクトとして初期化しています。

Usingステートメントをから変更してみてください

Using MemoryStream = New MemoryStream

Using MemoryStream As New MemoryStream
于 2012-10-22T12:23:25.343 に答える