2017-02-15 5 views
0

Ich habe eine Mail-Funktion 'Sendmail' in meinem VB app, wie so ...VB.Net - Mail als HTML Senden und Klar

Public Function Sendmail(ByVal mailrecipient As String, ByVal mailsubject As String, ByVal mailbody As String) 
     Try 
      Dim SmtpServer As New SmtpClient() 
      Dim mail As New MailMessage() 
      SmtpServer.Credentials = New _ 
     Net.NetworkCredential(internal_mail_server_username, internal_mail_server_password) 
      SmtpServer.Port = 25 
      SmtpServer.Host = internal_mail_server 
      mail = New MailMessage() 
      mail.From = New MailAddress(internal_email_sender) 
      mail.To.Add(mailrecipient) 
      mail.Subject = mailsubject 
      mail.IsBodyHtml = True 
      mail.Body = mailbody 
      SmtpServer.Send(mail) 
      MessageBox.Show("Mail successfully sent to " & mailrecipient) 
      Return "Success" 

     Catch ex As Exception 

     End Try 
    End If 
End Function 

Dies funktioniert gut, den Empfänger vorbei, Betreff und dazu schickt HTML-Mail raus ... fantastisch.

Was ich brauche, ist mit dieser E-Mail eine reine Textversion mit der E-Mail, die erlischt.

Gibt es eine einfache Möglichkeit, dies zu erreichen?

Antwort

1

Verwenden alterativeViews

'first create the Plain Text part 
Dim plainView As AlternateView = AlternateView.CreateAlternateViewFromString(Plain_Text) 
'then create the Html part 
Dim htmlView As AlternateView = AlternateView.CreateAlternateViewFromString(HTML_Text) 
mail.AlternateViews.Add(plainView) 
mail.AlternateViews.Add(htmlView) 

Natürlich müssen Sie sowohl die plain_text und HTML_Text als Parameter an die Routine zu übergeben.

+0

Behalte ich die Bits "mail.IsBodyHtml = True" und "mail.Body = mailbody"? – John

+0

IsBOdyHTML sollte den Standard einstellen, .body brauchst du aber nicht, wenn ich mich recht erinnere –