helpf.pro
Регистрация
 0 
Распечатать

Практическая работа с почтой (E-mail,The Bat, Outlook, Mozilla Thunderbird)

Код 1C v 8.х
 Попытка
ОтправитьПоПочте2(ТекСтрока); // работает с Батом
Исключение
Попытка
ОтправитьПоПочте1(ТекСтрока); // работает с Аутлуком, но переспрашивает при отправке
Исключение
Сообщить_и_записать("Ошибка при отправке почты - "+ОписаниеОшибки(),СтатусСообщения.Важное);
КонецПопытки;
КонецПопытки;

Процедура ОтправитьПоПочте1(ТекСтрока)
Почта = Новый Почта;
Сообщение = Новый ПочтовоеСообщение;
//Работает с Аутглуком, но переспрашивает при отправке
//не работает с Батом 3.60
Почта.Подключиться("name@mysite.dp.ua","password");

Сообщение.Вложения.Добавить(ПолучитьИмяФайлаПодразделения(ТекСтрока.филиал.наименование));
Сообщение.Получатели.Добавить(ТекСтрока.филиал.email);
Сообщение.Тема ="Проигнорированные документы в офисе. Письмо сгенерированно роботом";
Сообщение.Текст="Проверьте, будь ласка эти документы ПОСЛЕ получения обновления из офиса. Ваши изменения в этих документах не попали в базу. Откройте прикрепленный файл";
Почта.Послать(Сообщение);
Почта.Отключиться();
УдалитьФайлы(ПолучитьИмяФайлаПодразделения(ТекСтрока.филиал.наименование));
КонецПроцедуры

Процедура ОтправитьПоПочте2(ТекСтрока)
ПочтовыйПрофиль = Новый ИнтернетПочтовыйПрофиль;
ПочтовыйПрофиль.АдресСервераPOP3 = "pop3.mysite.dp.ua";
ПочтовыйПрофиль.АдресСервераSMTP = "smtp.mysite.dp.ua";
ПочтовыйПрофиль.ПортSMTP = 25;
ПочтовыйПрофиль.ПортPOP3 = 110;
ПочтовыйПрофиль.Пользователь = "name";
ПочтовыйПрофиль.Пароль = "password";
ПочтовыйПрофиль.ВремяОжидания = 60;

Сообщение = Новый ИнтернетПочтовоеСообщение ;
Сообщение.Вложения.Добавить(ПолучитьИмяФайлаПодразделения(ТекСтрока.филиал.наименование));
Сообщение.Получатели.Добавить(ТекСтрока.филиал.email);
Сообщение.Тема ="Проигнорированные документы в офисе. Письмо сгенерированно роботом";
Сообщение.ИмяОтправителя="Обмен";
Сообщение.Отправитель="name@mysite.dp.ua";

Текст = Сообщение.Тексты.Добавить("Проверьте, будь ласка эти документы ПОСЛЕ получения обновления из офиса. Ваши изменения в этих документах не попали в базу. Откройте прикрепленный файл");
Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;

Почта = Новый ИнтернетПочта();
Почта.Подключиться(ПочтовыйПрофиль);
Почта.Послать(Сообщение);
Почта.Отключиться();
УдалитьФайлы(ПолучитьИмяФайлаПодразделения(ТекСтрока.филиал.наименование));
КонецПроцедуры


А вот так 1с работает с Мозилой Сундербердом (который хорошо поддерживает IMAP):

Код 1C v 8.х
  ПутьМозиллы = """C:/Program Files/Mozilla Thunderbird/thunderbird.exe""";
Текст = Новый ЗаписьТекста(КаталогОбмена + "sendfiletofilial"+Строка(ТекСтрока.филиал.наименование)+".bat", КодировкаТекста.OEM);
Текст.ЗаписатьСтроку("@echo off");
Текст.ЗаписатьСтроку("@echo Отправка проигнорированных писем на филиал"+Строка(ТекСтрока.филиал.наименование));
СтрокаЗапуска = " -compose to='"+ТекСтрока.филиал.email+"',cc='name@mysite.dp.ua',subject=""Проигнорированные документы в офисе. Письмо сгенерированно роботом"",body=""Проигнорированные документы в офисе. Письмо сгенерированно роботом"",attachment=""file://";
Файл = """"+ПолучитьИмяФайлаПодразделения(ТекСтрока.филиал.наименование)+"""";
Текст.ЗаписатьСтроку(ПутьМозиллы+СтрокаЗапуска +Файл);
Текст.ЗаписатьСтроку("del "+Файл);
Текст.Закрыть();
ЗапуститьПриложение(КаталогОбмена + "sendfiletofilial"+Строка(ТекСтрока.филиал.наименование)+".bat",КаталогОбмена)


Получение почты

Код 1C v 8.х
 
Процедура КнопкаВыполнитьНажатие(Кнопка)
Почта = Новый ИнтернетПочта;

Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераPOP3 = "192.168.0.2";

Профиль.Пользователь = "romix";
Профиль.Пароль = "ТутНапишитеПароль";

Почта.Подключиться(Профиль);

МассивПисем = Почта.Выбрать(Ложь);

Для Каждого Письмо из МассивПисем Цикл
Сообщить("Получено письмо с заголовоком: "+Письмо.Тема);
Для Каждого Вложение из Письмо.Вложения Цикл
Сообщить("Вложение: "+Вложение.ИмяФайла);
Вложение.Данные.Записать("c:\tempdata\"+Вложение.ИмяФайла);
КонецЦикла;
Для Каждого Текст из Письмо.Тексты Цикл
Сообщить("Текст: "+Текст.Текст);
Текст.Данные.Записать("c:\tempdata\ТекстСообщения.txt");
КонецЦикла;
КонецЦикла;

КонецПроцедуры


Автор: 1CLama
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 12283
 0 
Распечатать
Возможно, вас также заинтересует
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
В Книгу продаж по постановлению 1137 не попадают с/ф без НДС 3
Вопрос : Обновили бухгалтерию, появилась новая книга продаж, но счета-факутры без НДС в нее не попадают, а в старой книге продаж все отображается хорошо! Ответ : Без НДС заполняется только в двух случаях: 1. Дата...
Где находится файл лицензии 1С 9
Многие спрашивают А где хранится лицензия на 1С: Предприятие 8? или Где посмотреть лицензионный ключ в 1С? В 1С информацию о полученной лицензии можно посмотреть нажав «Справка» — «О программе» В разделе Лицензия:...
Добавление поддержки нестандартного штрих-кода в обработке ПечатьЭтикеток 0
Обработка ПечатьЭтикеток использует компоненту " 1С:Печать штрихкодов" (доступную на диске ИТС) для печати штрих-кодов(далее ШК). Эта компонента поддерживает следующие типы штрих-кодов: EAN8, EAN13, EAN128, Code39, Code128. Что делать...
Загрузить данные в 1с из текстового файла с разделителями 1
В этой статье я расскажу, как загружать данные в 1с 8 из простейших текстовых файлов с разделителями. Обычно они имеют расширение csv (Comma-Separated Values). Т. е. название подразумевает, что в каждой строке такого текстового файла...
Посмотреть все результаты поиска похожих
Комментарии
tur
08.02.2012 15:13Комментарий: 3
tur
Процедура КнопкаВыполнитьНажатие(Кнопка)
//****** Чтение Outlook-почты ******

//ReceivedTime - ДатаВремя почты
//Subject - текст сообщения
//SenderName - автор
//FileName - наименование файла (может быть любой длины и на кириллице !!!)
Попытка
Почта= Новый COMОбъект("Outlook.Application");
Имена = Почта.GetNamespace("MAPI");
Исключение
ОписаниеОшибки=ОписаниеОшибки();
Сообщить("Ошибка OutLook - (м.б. не установлен на ПК )" + ОписаниеОшибки, СтатусСообщения.Внимание);
КонецПопытки;

//Для Инд=1 ПО Имена.Folders.Count() Цикл
// Папка=Имена.Folders.Item(Инд);
// ИмяПапки=Папка.Name;
// стр="";
// Сообщить(ИмяПапки);
//КонецЦикла;

Входящие = Имена.GetDefaultFolder(6);

Для Каждого Item Из Входящие.Items Цикл
Сообщить(Строка(Item.ReceivedTime)+" "+Строка(Item.Subject)+" "+Строка(Item.SenderName));

Для I= 1 По Item.Attachments.Count Цикл

// jpg-картинки не выбирать
Если Не Найти(Item.Attachments.Item(I).FileName, ".jpg") Тогда
Сообщить(Строка(Item.Attachments.Item(I).FileName));
КонецЕсли;

КонецЦикла;

КонецЦикла;

//отключение
Почта="";
КонецПроцедуры
E_Migachev
06.01.2010 13:47Комментарий: 2
E_Migachev
напрямую с бат не работает, описан пример как отправлять из 1С так же как и через бат.
lidiavi
05.01.2010 17:20Комментарий: 1
lidiavi
Здравствуйте. насколько я вижу процедура ОтправитьПоПочте2() работает с внутренним почтовым клиентом 1с и "The bat" там просто может быть в сторонке установлен. то есть ваш вариант непосредственно с программой "The bat" не работает?
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.