Возникла проблема. Отправляю письмо с аттачем. На яндексе все открывается как надо, даже с предварительным просмотром и возмжностью скачать. Гугл же выдает поток байт в base64:
HTML5 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| --unique-boundary-1
Content-Type: text/plain; charset=utf-8
TEST
--unique-boundary-1
Content-Type: application/octet-stream; file=DeletedKey01.reg
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=DeletedKey01.reg
//5XAGkAbgBkAG8AdwBzACAAUgBlAGcAaQBzAHQAcgB5ACAARQBkAGkAdABvAHIAIABWAGUAcgBzAGkAbwBuACAANQAuADAAMAAN
AAoADQAKAFsASABLAEUAWQBfAEMAVQBSAFIARQBOAFQAXwBVAFMARQBSAFwAUwBvAGYAdAB3AGEAcgBlAFwATQBpAGMAcgBvAHMA
bwBmAHQAXABPAGYAZgBpAGMAZQBcADEANAAuADAAXQANAAoADQAKAFsASABLAEUAWQBfAEMAVQBSAFIARQBOAFQAXwBVAFMARQBS
AFwAUwBvAGYAdAB3AGEAcgBlAFwATQBpAGMAcgBvAHMAbwBmAHQAXABPAGYAZgBpAGMAZQBcADEANAAuADAAXABDAG8AbQBtAG8A
bgBdAA0ACgANAAoAWwBIAEsARQBZAF8AQwBVAFIAUgBFAE4AVABfAFUAUwBFAFIAXABTAG8AZgB0AHcAYQByAGUAXABNAGkAYwBy
AG8AcwBvAGYAdABcAE8AZgBmAGkAYwBlAFwAMQA0AC4AMABcAEMAbwBtAG0AbwBuAFwATABhAG4AZwB1AGEAZwBlAFIAZQBzAG8A
dQByAGMAZQBzAF0ADQAKACIAVQBJAEwAYQBuAGcAdQBhAGcAZQAiAD0AZAB3AG8AcgBkADoAMAAwADAAMAAwADQAMQA5AA0ACgAi
AEgAZQBsAHAATABhAG4AZwB1AGEAZwBlACIAPQBkAHcAbwByAGQAOgAwADAAMAAwADAANAAxADkADQAKACIAVwBpAG4AWABQAEwA
YQBuAGcAdQBhAGcAZQBQAGEAdABjAGgAIgA9AGQAdwBvAHIAZAA6ADAAMAAwADAAMAAwADAAMQANAAoAIgBJAG4AcwB0AGEAbABs
AEwAYQBuAGcAdQBhAGcAZQAiAD0AZAB3AG8AcgBkADoAMAAwADAAMAAwADQAMQA5AA0ACgAiAFAAcgBlAHYAaQBvAHUAcwBJAG4A
cwB0AGEAbABsAEwAYQBuAGcAdQBhAGcAZQAiAD0AZAB3AG8AcgBkADoAMAAwADAAMAAwADQAMQA5AA0ACgAiAFcAbwByAGQAQwBo
AGEAbgBnAGUASQBuAHMAdABhAGwAbABMAGEAbgBnAHUAYQBnAGUAIgA9ACIATgBvACIADQAKACIAVwBvAHIAZABNAGEAaQBsAEMA
aABhAG4AZwBlAEkAbgBzAHQAYQBsAGwATABhAG4AZwB1AGEAZwBlACIAPQAiAE4AbwAiAA0ACgAiAFgATABDAGgAYQBuAGcAZQBJ
AG4AcwB0AGEAbABsAEwAYQBuAGcAdQBhAGcAZQAiAD0AIgBOAG8AIgANAAoAIgBQAFAAVABDAGgAYQBuAGcAZQBJAG4AcwB0AGEA
bABsAEwAYQBuAGcAdQBhAGcAZQAiAD0AIgBOAG8AIgANAAoAIgBBAGMAYwBlAHMAcwBDAGgAYQBuAGcAZQBJAG4AcwB0AGEAbABs
AEwAYQBuAGcAdQBhAGcAZQAiAD0AIgBOAG8AIgANAAoAIgBPAHUAdABsAG8AbwBrAEMAaABhAG4AZwBlAEkAbgBzAHQAYQBsAGwA
TABhAG4AZwB1AGEAZwBlACIAPQAiAE4AbwAiAA0ACgAiAFMAaABhAHIAZQBQAG8AaQBuAHQARABlAHMAaQBnAG4AZQByAEMAaABh
AG4AZwBlAEkAbgBzAHQAYQBsAGwATABhAG4AZwB1AGEAZwBlACIAPQAiAE4AbwAiAA0ACgAiAFAAdQBiAGwAaQBzAGgAZQByAEMA
aABhAG4AZwBlAEkAbgBzAHQAYQBsAGwATABhAG4AZwB1AGEAZwBlACIAPQAiAE4AbwAiAA0ACgAiAFAAcgBvAGoAZQBjAHQAQwBo
AGEAbgBnAGUASQBuAHMAdABhAGwAbABMAGEAbgBnAHUAYQBnAGUAIgA9ACIATgBvACIADQAKACIASQBuAGYAbwBQAGEAdABoAEMA
aABhAG4AZwBlAEkAbgBzAHQAYQBsAGwATABhAG4AZwB1AGEAZwBlACIAPQAiAE4AbwAiAA0ACgAiAE8AbgBlAE4AbwB0AGUAQwBo
AGEAbgBnAGUASQBuAHMAdABhAGwAbABMAGEAbgBnAHUAYQBnAGUAIgA9ACIATgBvACIADQAKACIAVwBlAGIARABlAHMAaQBnAG4A
ZQByAEMAaABhAG4AZwBlAEkAbgBzAHQAYQBsAGwATABhAG4AZwB1AGEAZwBlACIAPQAiAE4AbwAiAA0ACgAiAEwAYQBuAGcAVAB1
AG4AZQBVAHAAIgA9ACIATwBmAGYAaQBjAGUAQwBvAG0AcABsAGUAdABlAGQAIgANAAoADQAKAFsASABLAEUAWQBfAEMAVQBSAFIA
RQBOAFQAXwBVAFMARQBSAFwAUwBvAGYAdAB3AGEAcgBlAFwATQBpAGMAcgBvAHMAbwBmAHQAXABPAGYAZgBpAGMAZQBcADEANAAu
ADAAXABDAG8AbQBtAG8AbgBcAEwAYQBuAGcAdQBhAGcAZQBSAGUAcwBvAHUAcgBjAGUAcwBcAEUAbgBhAGIAbABlAGQATABhAG4A
ZwB1AGEAZwBlAHMAXQANAAoAIgAxADAANAA5ACIAPQAiAE8AbgAiAA0ACgAiADEAMAAzADMAIgA9ACIATwBuACIADQAKAA0ACgA= |
|
По какой причине гугл так интерпретирует сообщение? При этом без аттача приходит вполне адекватный текст в нормальной кодировке.
Помогите разобраться пожалуйста! Вот код:
C# |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| string MsgBody = Body;
if (!MsgBody.EndsWith("\r\n")) MsgBody += "\r\n";
//тело письма (вложения)
if (Attachments.Count > 0)
{
nanMessageHeader.Append("MIME-Version: 1.0\r\n");
nanMessageHeader.Append("Content-Type: multipart/mixed; boundary=unique-boundary-1\r\n");
nanMessageHeader.Append("\r\n");
//nanMessageHeader.Append("This is a multi-part message in MIME format.\r\n");
StringBuilder sb = new StringBuilder();
sb.Append("--unique-boundary-1\r\n");
sb.Append("Content-Type: text/plain; charset=utf-8\r\n");
//sb.Append("Content-Transfer-Encoding: 8Bit\r\n");
sb.Append("\r\n");
sb.Append(MsgBody + "\r\n");
sb.Append("\r\n");
foreach (string o in Attachments)
{
byte[] binaryData;
if (o != null)
{
FileInfo f = new FileInfo(o);
sb.Append("--unique-boundary-1\r\n");
sb.Append("Content-Type: application/octet-stream; file=" + f.Name + "\r\n");
//sb.Append("Content-Length:"+o.Length+"\r\n");
sb.Append("Content-Transfer-Encoding: base64\r\n");
sb.Append("Content-Disposition: attachment; filename=" + f.Name + "\r\n");
sb.Append("\r\n");
FileStream fs = f.OpenRead();
binaryData = new Byte[fs.Length];
long bytesRead = fs.Read(binaryData, 0, (int)fs.Length);
fs.Close();
string base64String = System.Convert.ToBase64String(binaryData, 0, binaryData.Length);
for (int i = 0; i < base64String.Length; )
{
int nextchunk = 100;
if (base64String.Length - (i + nextchunk) < 0)
nextchunk = base64String.Length - i;
sb.Append(base64String.Substring(i, nextchunk));
sb.Append("\r\n");
i += nextchunk;
}
sb.Append("\r\n");
}
}
MsgBody = sb.ToString();
}
nanMessageHeader.Append("\r\n");
nanMessageHeader.Append(MsgBody);
nanMessageHeader.Append(".\r\n"); |
|
Добавлено через 32 минуты
проглядел заголовок один лишний, извиняюсь за беспокойство, поторопился(