Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 31
1

smtp + attachment

11.03.2013, 01:44. Показов 1292. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Возникла проблема. Отправляю письмо с аттачем. На яндексе все открывается как надо, даже с предварительным просмотром и возмжностью скачать. Гугл же выдает поток байт в 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 минуты
проглядел заголовок один лишний, извиняюсь за беспокойство, поторопился(
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2013, 01:44
Ответы с готовыми решениями:

Загрузка нескольких файлов в Attachment
Здравствуйте, делаю программу для отправки сообщения и файлов на email, пытался разными способами...

Картинка занята в Attachment, но ее нужно удалить
Всем привет. Есть проблема при передачи картинок на почту, дело в том что мне нужно их сразу же...

Проверить есть ли Attachment или нет. VkNet
Добрый день, форумчане! Пытаюсь из беседы ВК вытянуть все фотки, но проблема в том, что как...

Протокол в почтовом клиенте SMTP
Здравствуйте. есть почтовый клиент написанный на C#. Работает норм. но весь процесс почтовой сессии...

0
11.03.2013, 01:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2013, 01:44
Помогаю со студенческими работами здесь

Письмо не отправляется (через SMTP)
Все привет, очень нужна помощь!У меня в программе есть главная форма MainForm. На самой форме есть...

Ошибка отправки письма по SMTP
Доброго времени суток. Есть код отправки писем : private void SendEmail() { SmtpClient...

SMTP client
Добрый день. Задача у меня не сложная (казалось бы). Написать класс, который мог бы слать письма...

SMTP-сервера
Добрый день, дали задание: Написать программу, реализующую функции SMTP-сервера. В главном окне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru