2009-08-25 6 views
2

Da ich E-Mail per Code senden muss, verwende ich derzeit Plantext, aber seit Outlook, standardmäßig entfernen Sie die zusätzliche Zeilenumbruch es meine Formatierung vermasseln und ich will das nicht, ich habe versucht, meinen Text in html, aber jetzt ist die E-Mail als Spam markiert.Wie konvertiert man Text in RTF, um E-Mails zu senden?

Meine letzte Wahl ist es, den Text in RTF zu verschieben, aber jetzt ist meine Frage.

Was ist der einfachste Weg, um Text in RTF zu verschieben?

Es gibt keine Benutzerschnittstelle.

Die E-Mail enthält keine komplexen Zeug, nur Text und einige zusätzliche Zeile, das ist mein aktuelles Problem mit reinem Text und Standardeinstellung von Outlook.

Und nein, ich kann die Standardeinstellung von Outlook nicht ändern.

+0

sehr nützlich sein, wenn Sie sicher sein können, dass der Empfänger Outlook auch verwendet, einen RTF Senden Körper ist wahrscheinlich eine ziemlich schlechte Idee ... Wenn Ihre HTML-Mail als Spam markiert ist, gibt es sehr wahrscheinlich etwas anderes, das dies auslöst. Mein Bauchgefühl sagt mir, dass etwa 70% aller E-Mails heutzutage HTML sind (wahrscheinlich sogar mehr). Es wäre ziemlich schlimm, wenn sie alle automatisch als Spam eingestuft würden ... –

Antwort

4

Sie müssen einen Verweis auf System.Windows.Forms hinzuzufügen und dann die RichTextBox verwenden:

string text = "your text here"; 
string rtfText = string.Empty; 
using(RichTextBox rtf = new RichTextBox()) { 
    rtf.Text = text; 
    rtfText = rtf.Rtf; 
} 
+0

das hat den Job erledigt, aber ich hätte vorher nachsehen sollen, ob die system.net.mail tatsächlich das Senden als RTF unterstützt und es nicht so scheint Ich muss mit Interop (Outlook oder Word) spielen, um das zu tun, und das ist ein großes Nein für mich. – Fredou

2

Wenn Sie mit ihm überhaupt zu verwirren nicht Outlook möchten, verwenden Sie MIME-Typ „application/Binär ". Sie werden den Code im Vorschaubereich nicht mehr sehen - ist das für Sie wichtig?

0

Really Nice ur-Code, für die Verwendung mit VB.net ändere ich einige Zeilen:

Dim text As String = dr.Item("Descripcion") 
Dim rtfText As String = String.Empty 
Dim rtf As New RichTextBox 
rtf.Text = Text 
rtfText = rtf.Rtf 
Me.RichTextBox1.Rtf = rtfText 

Ich hoffe, die

Verwandte Themen