Vb.net 如何使用Restful服务将图像作为电子邮件附件发送

Vb.net 如何使用Restful服务将图像作为电子邮件附件发送,vb.net,email,rest,Vb.net,Email,Rest,下面是我用来从jQueryAjax调用接收图像的vb.net代码 Public Function MailKpiChart(ByVal img As String) As GenericResponse(Of Boolean) Implements IKPI.MailKpiChart Dim SmtpServer As New Net.Mail.SmtpClient() SmtpServer.Credentials = New Net.NetworkCreden

下面是我用来从jQueryAjax调用接收图像的vb.net代码

Public Function MailKpiChart(ByVal img As String) As GenericResponse(Of Boolean) Implements IKPI.MailKpiChart

        Dim SmtpServer As New Net.Mail.SmtpClient()
        SmtpServer.Credentials = New Net.NetworkCredential("xyz@gmail.com", "password")
        SmtpServer.Port = 587
        SmtpServer.Host = "smtp.gmail.com"
        SmtpServer.EnableSsl = True
        Dim blStatus As Boolean
        Try
            Dim mailMessage As New MailMessage()
            mailMessage.From = New MailAddress("from@gmail.com", ".Net Devoloper")
            mailMessage.To.Add(New MailAddress("to@gmail.com"))
            mailMessage.Subject = "test mail"
            mailMessage.Body = "hello world"
            Dim imgStream As New MemoryStream()
            Dim Image As System.Drawing.Bitmap = getImagefromBase64(img)
            Dim filename As String = "sample image"

            Image.Save(imgStream, System.Drawing.Imaging.ImageFormat.Png)
            mailMessage.Attachments.Add(New Attachment(imgStream, filename, System.Net.Mime.MediaTypeNames.Image.Jpeg))
            SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network
            SmtpServer.Send(mailMessage)
            blStatus = True
            Return ServiceUtility.BuildResponse(Of Boolean)(blStatus, String.Empty, String.Empty, 0)
        Catch ex As Exception
            Return ServiceUtility.BuildResponse(Of Boolean)(False, "",
        ex.Message, AppConstants.ErrorSeverityCodes.HIGH)
        End Try

    End Function
这是我将base64字符串转换为图像的函数

 Public Function getImagefromBase64(ByVal uploadedImage As String) As Image
        'get a temp image from bytes, instead of loading from disk
        'data:image/gif;base64,
        'this image is a single pixel (black)
        Dim bytes As Byte() = Convert.FromBase64String(uploadedImage)

        Dim image__1 As Image
        Using ms As New MemoryStream(bytes)
            ms.Write(bytes, 0, bytes.Length)
            image__1 = Image.FromStream(ms)
        End Using

        Return image__1
    End Function
当我看到我的gmail收件箱时,我会看到一封带有附件的邮件,但我看不到我发送的实际图像。我只是看到一张空白图像

需要帮助


关于

我也遇到了同样的问题,在将流附加到消息之前只添加了下面的一行就解决了这个问题

imgStream.Position=0

问候,,
Jonathan。

将您的url点添加到另一个网站

 Dim bodys As String = "<html><head><title> example </title></head><body><table width='100%'>"

    bodys += "<p><img width=135 height=77 src='http://www.example.com/image.gif'></p>"

    bodys += "</table></body></html>"

Dim mails As New System.Net.Mail.MailMessage()
        SmtpServer.Host = "127.0.0.1"
        SmtpServer.Port = 25

        mails = New System.Net.Mail.MailMessage()
        mails.From = New System.Net.Mail.MailAddress("example@example.com")
        mails.To.Add(txtEmail.Text)
        mails.Subject = ""
        mails.BodyEncoding = Encoding.UTF8
        mails.IsBodyHtml = True

        mails.Body = bodys.ToString()


        SmtpServer.Send(mails)
src="image.gif"

ohh ok..将检查..thnx以获得响应...)