Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 31.07.2013
Сообщений: 24

Отправка файлов на email через приложение

12.10.2014, 22:27. Показов 2451. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прога: Из заданной папки собирает в себя файлы определенного типа следующим образом

C#
1
2
DirectoryInfo ThatDir = new DirectoryInfo(@"C:\Documents and Settings\Bot\Мои документы\Downloads");
            string[] files = new string[ThatDir.GetFiles("*.doc*", SearchOption.AllDirectories).Length];
Далее она записывает их пути:
C#
1
2
3
4
5
6
7
q = 0;
foreach (FileInfo f in ThatDir.GetFiles("*.doc*", SearchOption.AllDirectories))
            {
                MessageBox.Show(f.FullName);
                files[q] = f.FullName;
                q++;
            }
И отправляет на мыло одним сообщением с помощью этой ф-ии:
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
void SendMail(string[] Files)
        {
            try
            {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
 
                mail.From = new MailAddress("адр_@gmail.com");
                mail.To.Add("ываыва_@yandex.ru");
                mail.Subject = "Files";
                mail.Body = " ";
                for (int i = 0; i < Files.Length; i++)
                {
                    mail.Attachments.Add(new Attachment(Files[i]));
                    MessageBox.Show(mail.Attachments[i].Name);
                }
 
                SmtpServer.Port = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential("adr_@gmail.com", "pass");
                SmtpServer.EnableSsl = true;
 
                SmtpServer.Send(mail);
                MessageBox.Show("mail Send");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
В папке 3 ворда, если отправлять их по одному, то он 2 отправит, а на 3-ем пишет ошибку, а если их попробовать в одно сообщение пихнуть, как я и хочу, то вообще ничего соответственно не отправляет и пишет ту же ошибку (скрин). Так же прога нормально определяет ворды, т.е. ошибка чисто при отправке письма. Как это исправить?
Миниатюры
Отправка файлов на email через приложение  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.10.2014, 22:27
Ответы с готовыми решениями:

Отправка файлов по имени (email.pdf) на email
Всем привет! Есть куча файлов (около 160) каждый файл называется именем e-maila на который должен быть отправлен. Как быстро их все...

Скрипт мониторинга названий файлов и отправка отчёта на email
Всем привет. Помогите пожалуйста написать скрипт, который решит задачу. ДАНО: Есть папка (например C:\Windows\Rabota) с кучей файлов...

Отправка Email через Pascal
Как отправить сообщение по почте? Напишите пример пожалуйста

9
0 / 0 / 1
Регистрация: 31.07.2013
Сообщений: 24
12.10.2014, 22:51  [ТС]
Нашел файл, на который он ругается: MP_18_Kogtev_Lab_1_1.docx
Не пойму почему)
0
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
15.10.2014, 15:08
Пробовал отправлять 4,5,15 файлов? Если не пишет только последний файл, то в цикле где цепляешь аттачи, поставь -1

C#
1
2
3
4
5
for (int i = 0; i < Files.Length-1; i++)
                {
                    mail.Attachments.Add(new Attachment(Files[i]));
                    MessageBox.Show(mail.Attachments[i].Name);
                }
0
0 / 0 / 1
Регистрация: 31.07.2013
Сообщений: 24
15.10.2014, 17:35  [ТС]
Nikeys174, пробовал, все норм отправляет. Ему не нравится именно этот вордовский файл. Его прога даже отдельно один файл не может отправить. Еще прога некоторые mp3 файлы не отправляет - та же ошибка. Интересно, почему есть файлы, которые он просто не ест. Однако, если эти файлы отправить вручную - то все норм) чисто через прогу ошибка
0
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
15.10.2014, 18:53
сравни этот файл с остальными, возможно он какой-то битый, может проблема с кодировкой в файле или с объектами в файле.
0
0 / 0 / 1
Регистрация: 31.07.2013
Сообщений: 24
15.10.2014, 19:22  [ТС]
Nikeys174, еще вопрос - я для эксперимента создал пустой ворд (Документ Microsoft Office Word.docx) и отправил его. На почту пришел файл с именем "=?utf-8?B?0JTQvtC60YPQvNC10L3RgiBNaWNyb3Nv" без формата и, если открыть его через ворд, то там какой-то код появился. Знаете, как это можно исправить?
0
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
15.10.2014, 19:33
при передаче файла в прогу у тебя возникла проблема с кодировкой, скорее всего прога их передает в utf-8 и письмо получается в utf-8, а сам документ ворда в стандартной кодировке windows-1251.
1
0 / 0 / 1
Регистрация: 31.07.2013
Сообщений: 24
15.10.2014, 20:05  [ТС]
Nikeys174, а как изменить тогда кодировку при передаче?
0
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
15.10.2014, 20:13
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

C#
1
encoding.getencoding("utf-8")
этот способ приемлем для любых текстовых файлов, в твоем случае, нужна кодировка письма, посмотри у твоего объекта mail.

вот код для задания кодировки вложениям:
C#
1
2
3
4
System.Net.Mail.Attachment attachment =
         AttachmentHelper.CreateAttachment(attachmentFilePath, displayName, TransferEncoding.Base64);
 
    msg.Attachments.Add(attachment);
1
0 / 0 / 1
Регистрация: 31.07.2013
Сообщений: 24
15.10.2014, 20:16  [ТС]
Nikeys174, То, что надо. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.10.2014, 20:16
Помогаю со студенческими работами здесь

Отправка email через Socks
Имеется рабочий код: Dim mailMsg As New MailMessage mailMsg.From = New System.Net.Mail.MailAddress(Server.Address) ..................

Отправка email через прокси
Подскажите пожайлуста... Есть процедурка отправки email private void Send() { //Авторизация на SMTP сервере ...

Отправка email через outlook листа excel
Добрый день, не могу разобраться с проблемкой. Есть код который отправляет письма через outlook, но проблема в том что отправляет он...

отправка email из STM32L476 через модем SIM800L
Два почтовых ящика есть. Вроде по руководству прошел всё, везде ОК, на команду SMTPBODY текст выдал, получил ОК. Выдаю SMTPSEND и получаю...

Отправка выбранных чекбоксов на email через PHP-обработчик
Привет Есть форма на HTML &lt;form action=&quot;form.php&quot; method=&quot;post&quot;&gt; &lt;div class=&quot;cell&quot;&gt; &lt;p&gt;&lt;a href=&quot;1.html&quot;&gt;Книга...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru