Benutzer mit den meisten Antworten
Process.Start zum versenden einer Mail verwenden und Mail muss Plain Text sein

Frage
-
Hallo,
ich habe in Visual Studio ein Programm erstellt, welches den Inhalt mehrerer Textboxen als Mail versenden soll.
Mit Process.Start funktioniert das auch wunderbar und genau in dem Format, in dem ich es haben will.
Nur leider wird die Mail immer wieder als Html erstellt und ich habe noch keine Möglichkeit gefunden über Process.Start eine reine Plain Text Mail zu versenden.
Weiß irgendjemand, ob es da eine Möglichkeit gibt, dass meine Mail nur als Plain Text verschick wird?
VG & Danke schonmal
- Verschoben Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 13. Januar 2017 11:40 Aus: Visual C#
Antworten
-
Hallo Sarina,
mein Beispiel geht davon aus, dass lokal ein IIS mit SMTP Dienst installiert ist. Das ist allerdings nicht überall der Fall. Für Tests kann man auch ein lokales Pickup Verzeichnis angeben, dort werden dann die .eml Dateien erzeugt, die man sich bspw. mit Outlook ansehen kann. Ein Versand findet in dem Fall aber nicht statt.
Du kannst alternativ auch einen Direktversand vornehmen, hierfür bräuchtest Du dann einen SMTP Server und die entsprechenden Zugangsdaten. Der Code sieht in dem Fall ein klein wenig anders aus.
Imports System.Net.Mail Public Class Mail Public Shared Sub Send() Dim SmtpClient As New SmtpClient() SmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network SmtpClient.Host = "dein.mailserver.tld" SmtpClient.Credentials = New NetworkCredential( "SmtpUsername", "SmtpPassword" ) Dim SmtpMessage As New MailMessage() SmtpMessage.To.Add( New MailAddress( "seine@adresse.tld", "Sein Name" ) ) SmtpMessage.From = New MailAddress( "deine@adresse.tld", "Dein Name" ) SmtpMessage.Subject = "Betreff" SmtpMessage.Body = "Inhalt" SmtpClient.Send( SmtpMessage ) End Sub End Class
Falls Du eine verschlüsselte Verbindung verwendest bzw. verwenden musst:
Imports System.Net.Mail Public Class Mail Public Shared Sub Send() Dim SmtpClient As New SmtpClient() SmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network SmtpClient.Host = "dein.mailserver.tld" SmtpClient.Port = <Portnummer> ' bspw. 587 SmtpClient.Credentials = New NetworkCredential( "SmtpUsername", "SmtpPassword" ) SmtpClient.EnableSsl = True Dim SmtpMessage As New MailMessage() SmtpMessage.To.Add( New MailAddress( "seine@adresse.tld", "Sein Name" ) ) SmtpMessage.From = New MailAddress( "deine@adresse.tld", "Dein Name" ) SmtpMessage.Subject = "Betreff" SmtpMessage.Body = "Inhalt" SmtpClient.Send( SmtpMessage ) End Sub End Class
HTH
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 13. Januar 2017 11:46
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 26. Januar 2017 11:10
-
Nur leider wird die Mail immer wieder als Html erstellt und ich habe noch keine Möglichkeit gefunden über Process.Start eine reine Plain Text Mail zu versenden.
Weiß irgendjemand, ob es da eine Möglichkeit gibt, dass meine Mail nur als Plain Text verschick wird?
Die Grundeinstellung deines E-Mail Clients entscheidet darüber wie der via mailto gesandte Text behandelt wird, d. h. die Einstellung für Plain Text musst Du dort vornehmen. Bei Outlook findet sich diese Einstellung unter den Optionen für "E-Mail".
- Gruß Florian
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 13. Januar 2017 11:38
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 26. Januar 2017 11:10
Alle Antworten
-
Hi,
muss der Versand wirklich über den lokal auf dem ausführenden PC installierten Mailclient erfolgen? Falls ja: Ist denn überhaupt gesichert, dass auf dem PC ein Mailclient installiert ist, den Du aufrufen kannst?
Sinnvoller erscheint es mir (sofern nicht zwingende Gründe dagegen sprechen), die Mail über etwas wie:
Imports System.Net.Mail Public Class Mail Public Shared Sub Send() Dim SmtpClient As New SmtpClient() SmtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis Dim SmtpMessage As New MailMessage() SmtpMessage.To.Add( New MailAddress( "seine@adresse.tld", "Sein Name" ) ) SmtpMessage.From = New MailAddress( "deine@adresse.tld", "Dein Name" ) SmtpMessage.Subject = "Betreff" SmtpMessage.Body = "Inhalt" SmtpMessage.Attachments.Add( New Attachment( "X:\ordner\datei.ext" ) ) SmtpClient.Send( SmtpMessage ) End Sub End Class
oder ähnliches zu senden. Dort hast Du jegliche Möglichkeit, Plaintext, HTML, ... zu senden.
Weitere Infos zu SmtpClient findest Du bspw. hier:
https://msdn.microsoft.com/de-de/library/system.net.mail.aspx
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Montag, 9. Januar 2017 15:31
-
Hallo Sarina,
mein Beispiel geht davon aus, dass lokal ein IIS mit SMTP Dienst installiert ist. Das ist allerdings nicht überall der Fall. Für Tests kann man auch ein lokales Pickup Verzeichnis angeben, dort werden dann die .eml Dateien erzeugt, die man sich bspw. mit Outlook ansehen kann. Ein Versand findet in dem Fall aber nicht statt.
Du kannst alternativ auch einen Direktversand vornehmen, hierfür bräuchtest Du dann einen SMTP Server und die entsprechenden Zugangsdaten. Der Code sieht in dem Fall ein klein wenig anders aus.
Imports System.Net.Mail Public Class Mail Public Shared Sub Send() Dim SmtpClient As New SmtpClient() SmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network SmtpClient.Host = "dein.mailserver.tld" SmtpClient.Credentials = New NetworkCredential( "SmtpUsername", "SmtpPassword" ) Dim SmtpMessage As New MailMessage() SmtpMessage.To.Add( New MailAddress( "seine@adresse.tld", "Sein Name" ) ) SmtpMessage.From = New MailAddress( "deine@adresse.tld", "Dein Name" ) SmtpMessage.Subject = "Betreff" SmtpMessage.Body = "Inhalt" SmtpClient.Send( SmtpMessage ) End Sub End Class
Falls Du eine verschlüsselte Verbindung verwendest bzw. verwenden musst:
Imports System.Net.Mail Public Class Mail Public Shared Sub Send() Dim SmtpClient As New SmtpClient() SmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network SmtpClient.Host = "dein.mailserver.tld" SmtpClient.Port = <Portnummer> ' bspw. 587 SmtpClient.Credentials = New NetworkCredential( "SmtpUsername", "SmtpPassword" ) SmtpClient.EnableSsl = True Dim SmtpMessage As New MailMessage() SmtpMessage.To.Add( New MailAddress( "seine@adresse.tld", "Sein Name" ) ) SmtpMessage.From = New MailAddress( "deine@adresse.tld", "Dein Name" ) SmtpMessage.Subject = "Betreff" SmtpMessage.Body = "Inhalt" SmtpClient.Send( SmtpMessage ) End Sub End Class
HTH
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 13. Januar 2017 11:46
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 26. Januar 2017 11:10
-
Nur leider wird die Mail immer wieder als Html erstellt und ich habe noch keine Möglichkeit gefunden über Process.Start eine reine Plain Text Mail zu versenden.
Weiß irgendjemand, ob es da eine Möglichkeit gibt, dass meine Mail nur als Plain Text verschick wird?
Die Grundeinstellung deines E-Mail Clients entscheidet darüber wie der via mailto gesandte Text behandelt wird, d. h. die Einstellung für Plain Text musst Du dort vornehmen. Bei Outlook findet sich diese Einstellung unter den Optionen für "E-Mail".
- Gruß Florian
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 13. Januar 2017 11:38
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 26. Januar 2017 11:10
-
Danke, genau das wollte ich :)
Die Problemstellen, die ich oben beschrieben hatte, sind dir aber bewusst, oder? (Anderer Mailclient, gar kein Mailclient, ...)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community