2016-04-03 11 views
1

Derzeit kann ich ordnungsgemäß eine HTML-E-Mail mit ASP.net senden. Ich habe festgestellt, dass die Verwendung eines Spam-Testers wie https://www.mail-tester.com/ ein besseres Ergebnis liefert, wenn Sie sowohl eine reine Textansicht als auch die HTML-Ansicht bereitstellen. Also entschied ich mich zu versuchen, die alternativen Ansichten hinzuzufügen. Mein Problem ist, dass, wenn ich versuche, eine reine Textansicht hinzuzufügen, die HTML-Ansicht zu überschreiben scheint. Hier ist der Code, der völlig in Ordnung für die Einrichtung meiner HTML funktioniert nur lesen:ASP.net/C# E-Mail mit AlternateViews zum Anzeigen von HTML nicht der PlainText

message.IsBodyHtml = true; 
    message.BodyEncoding = Encoding.UTF8; 
    message.BodyTransferEncoding = TransferEncoding.Base64; 
    message.Body = "<html lang=\"en\"><head><meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\"></head><body>" + message.Body + "</body></html>"; 

Nun, wenn ich versuche, die die normale Ansicht Gmail will scheint hinzufügen, um nur die Klartext-Ansicht angezeigt werden und nicht die HTML-Ansicht. Gibt es überhaupt eine Einstellung, welche Ansicht standardmäßig ist? Hier ist mein Klartext Ansicht Code:

message.IsBodyHtml = true; 
    message.BodyEncoding = Encoding.UTF8; 
    message.BodyTransferEncoding = TransferEncoding.Base64; 
    message.Body = "<html lang=\"en\"><head><meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\"></head><body>" + message.Body + "</body></html>"; 

    //first we create the Plain Text part 
    var plainView = AlternateView.CreateAlternateViewFromString(HtmlToPlainText(message.Body), Encoding.UTF8, MediaTypeNames.Text.Plain); 
    ////then we create the Html part 
    var htmlView = AlternateView.CreateAlternateViewFromString(message.Body, Encoding.UTF8, MediaTypeNames.Text.Html); 
    message.AlternateViews.Add(htmlView); 
    message.AlternateViews.Add(plainView); 

ich versucht habe, zu entfernen ersten Code für den Körper angezeigt und um den Körper zu leeren String einstellen, so dass es nur beide der alternativen Ansichten ergänzt und das hat nicht funktioniert. Ich glaube, ich habe alle Permutationen des Codes abgedeckt und immer noch nichts. Wie ich schon sagte, es funktioniert perfekt nur für HTML und es funktioniert mit HTML-alternative Ansicht, aber nicht beim Hinzufügen der Klartextansicht.

Antwort

1

Sie erstellen zuerst die Nur-Text-Version, aber Sie fügen sie nach der HTML-Version hinzu. Gemäß der unten stehenden Referenz muss die Klartextversion an erster Stelle stehen.

Sie auch im Codebeispiel feststellen, dass IsBodyHtml für jede Version separat eingestellt ist: Es ist false für die reine Textversion und true für die HTML-Version.

Correct Syntax for Generating HTML Email using AlternateView

+0

Dank ich dachte ich, dass zuerst versucht hatte. – Enkode