如何使用 vb.net 在电子邮件中发送图片框

how to send picturebox on e-mail using vb.net

我想使用 vb.net 在电子邮件中发送图片框,但是电子邮件发送时是空的。

这是我的代码

 Try
        Dim smtp = New SmtpClient("smtp.gmail.com") ' connexion au serveur SMTP Gmail
        Dim message As New MailMessage
        message.Body = PictureBox1.Container
        message.To.Add(txt_adr.Text) ' choisir l'@ du destinataire
        'message.Body = corp.Text ' le corps du mail a envoyé
        message.From = New MailAddress("*******") ' message from expéditeur
        message.Subject = Objet.Text ' le champs objet du mail
        '------------ connexion avec le SMTP ---------'
        smtp.EnableSsl = True ' activer le chiffremment SSL
        smtp.Port = "587" ' accéder au port de connexion du SMTP
        smtp.Credentials = New System.Net.NetworkCredential("*******", "*********") ' introduire les paramétres de connexion de l'expéditeur
        smtp.Send(message) 'envoyé le mail
        MsgBox("Successful")
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Exclamation, "erreur d'envoie")
    End Try

然后,我尝试使用 html正文,但图像是在附件中发送的,而不是背景,并且没有文字 (txt_objet.text)

这是我的 html 代码

      Dim img As LinkedResource
        img = New LinkedResource(image_path.Text, "image/jpeg")
        img.ContentId = "myimage"
        Dim htmlbody As String =
           "<html>
            <head>
            <style>
             body {
                   background-image : url(C:\Users\user\Desktop\Nouveau dossier (2)\img.jpg); 
                   background-position : center center;
                   }
            </style>
            <body>
            <h1>Picture</h1>
            <br><p>" + txt_objet.Text + "</p>
        </body>
        </html>"
        Dim altview As AlternateView = AlternateView.CreateAlternateViewFromString(htmlbody, Nothing, "Text/html")
        altview.LinkedResources.Add(img)
        '****** affecter cette format à l'email
        message.AlternateViews.Add(altview)
        message.Body = htmlbody
        message.IsBodyHtml = True

首先,将你的图像保存到一个文件中,(如果它已经作为一个文件可用它很好)

第二个,用于在电子邮件正文中发送内联图像。
试试下面的代码:

Dim htmlBody As String = "<html><body><h1>Picture</h1><br><img src=""cid:filename""></body></html>"
Dim avHtml As AlternateView = AlternateView.CreateAlternateViewFromString(htmlBody, Nothing, MediaTypeNames.Text.Html)
Dim inline As LinkedResource = New LinkedResource("filename.jpg", MediaTypeNames.Image.Jpeg)
inline.ContentId = Guid.NewGuid.ToString
avHtml.LinkedResources.Add(inline)
Dim mail As MailMessage = New MailMessage
mail.AlternateViews.Add(avHtml)
Dim att As Attachment = New Attachment(filePath)
att.ContentDisposition.Inline = true
mail.From = New MailAddress("*******")
mail.To.Add(txt_adr.Text)
mail.Subject = Objet.Text
mail.Body = String.Format("<img src=""""cid:{0}"""" />", inline.ContentId)
mail.IsBodyHtml = true
mail.Attachments.Add(att)