2017-02-15 6 views
0

У меня есть почта функцию «Sendmail» в моем VB приложение, как это ...VB.Net - Отправка почты в формате HTML и открытым текстом

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 

Это прекрасно работает, передавая получателя, тему и тело к нему отправляется HTML-письмо ... фантастическое.

Что мне нужно, чтобы включить это письмо в текстовую версию с почтой, которая выходит.

Есть ли простой способ добиться этого?

ответ

1

Использование 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) 

Очевидно, что вам необходимо пройти как PLain_Text и HTML_Text в качестве параметров к подпрограмме.

+0

Должен ли я хранить биты mail.IsBodyHtml = True и mail.Body = mailbody? – John

+0

IsBOdyHTML должен установить значение по умолчанию, .body u не нужно, хотя, если я правильно помню –