Email Service With Differently Encoded Attachments
I'm trying to make an emailer service that sends out attachments that has
been processed elsewhere in our system. The requirements for this is that
the client is expecting a specific encoding specified in the settings for
a job. In a test app, I'm trying to send out emails with attachments in
different encodings, but when I view in IE or notepad++ I get a bunch of
question marks, instead of a correctly encoded file. What am I not doing
right?
var current_month = @"<?xml version=""1.0"" encoding=""utf-8""?>
<test>
ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
–—'""„†•…‰™œŠŸ
ΑΒΓΔΩαβγδω
АБВГДабвгд
∀∂∈ℝ∧∪≡∞
↑↗↨↻⇣
┐┼╔╘░►☺♀
fi�⑀₂ἠḂӥẄɐː⍎אԱა
Οὐχὶ
ταὐτὰ
παρίσταταί
μοι
γιγνώσκειν,
ὦ
ἄνδρες
᾿Αθηναῖοι,
ὅταν τ᾿
εἰς τὰ
πράγματα
ἀποβλέψω
καὶ
ὅταν
πρὸς
τοὺς
λόγους
οὓς
ἀκούω·
τοὺς
μὲν γὰρ
λόγους
περὶ
τοῦ
τιμωρήσασθαι
Φίλιππον
ὁρῶ
γιγνομένους,
τὰ δὲ
πράγματ᾿
εἰς
τοῦτο
προήκοντα,
ὥσθ᾿
ὅπως μὴ
πεισόμεθ᾿
αὐτοὶ
πρότερον
κακῶς
σκέψασθαι
δέον.
οὐδέν
οὖν
ἄλλο
μοι
δοκοῦσιν
οἱ τὰ
τοιαῦτα
λέγοντες
ἢ τὴν
ὑπόθεσιν,
περὶ ἧς
βουλεύεσθαι,
οὐχὶ
τὴν
οὖσαν
παριστάντες
ὑμῖν
ἁμαρτάνειν.
ἐγὼ δέ,
ὅτι μέν
ποτ᾿
ἐξῆν τῇ
πόλει
καὶ τὰ
αὑτῆς
ἔχειν
ἀσφαλῶς
καὶ
Φίλιππον
τιμωρήσασθαι,
καὶ
μάλ᾿
ἀκριβῶς
οἶδα·
ἐπ᾿
ἐμοῦ
γάρ, οὐ
πάλαι
γέγονεν
ταῦτ᾿
ἀμφότερα·
νῦν
μέντοι
πέπεισμαι
τοῦθ᾿
ἱκανὸν
προλαβεῖν
ἡμῖν
εἶναι
τὴν
πρώτην,
ὅπως
τοὺς
συμμάχους
σώσομεν.
ἐὰν γὰρ
τοῦτο
βεβαίως
ὑπάρξῃ,
τότε
καὶ
περὶ
τοῦ
τίνα
τιμωρήσεταί
τις καὶ
ὃν
τρόπον
ἐξέσται
σκοπεῖν·
πρὶν δὲ
τὴν
ἀρχὴν
ὀρθῶς
ὑποθέσθαι,
μάταιον
ἡγοῦμαι
περὶ
τῆς
τελευτῆς
ὁντινοῦν
ποιεῖσθαι
λόγον.
</test>";
var newEncoding = Encoding.UTF8;
var bytes = Encoding.Default.GetBytes(current_month);
var newBytes = Encoding.Convert(Encoding.Default, newEncoding,
bytes);
var msCurrent = new MemoryStream(newBytes);
var attachment = new Attachment(msCurrent, "testattachment3.xml",
MediaTypeNames.Text.Xml);
attachment.ContentType = new ContentType("text/xml");
var message = new MailMessage("them", "me");
message.BodyEncoding = newEncoding;
message.Attachments.Add(attachment);
new SmtpClient("192.168.6.25")
{
UseDefaultCredentials = true
}.Send(message);
No comments:
Post a Comment