1С Почта
1С и Почта
Долго искал, но ничего внятного и не глючного не находил, в итоге обратился к ИТС.
Все описанное ниже предполагает использование стандартной библиотеки v7plus.dll, входящей в комплект поставки 1С:Предприятия 7.7.
И как всегда, все гениально и просто, за исключением, что все это нормально работает только если вы пользуетесь Microsoft Outlook Express или Microsoft Outlook. Т.е. например, на The Bat это не проканает. Итак,
1С и почта в 1С: Предприятие 7.7.
Возврат;
// создание ссылки на электронную почту
Попытка
Возврат;
ЭП.Подключиться();
// создание письма
ЭП.НовоеСообщение();
ЭП.Заголовок="Тест";
ЭП.Текст="Сообщение";
ЭП.ДобавитьАдрес("egorychev@efrlab.ru");
ЭП.ДобавитьФайл("c:\testfile.txt");
Попытка
ЭП.Отключиться();
Возврат;
ЭП.Отключиться();
1С и почта в 1С: Предприятие 8
В 1С Предприятие 8 с почтой проблем поменьше и имеет уже встроенные функции для отправки сообщений, импорта писем из почтового клиента в справочник или другой объект конфигурации, работы с MAPI, SMTP или POP3.
При работе с почтой разделяют два способа доступа к почтовому ящику, почтовому клиенту:
Объект «Почта» и объект «Интернет почта», каждый из объектов имеет свои достоинства:
Все реквизиты входящих писем сохраняются в соответствующие поля табличного поля, вложения сохраняются в каталог временных файлов, а имена вложений в реквизит табличного поля. Для более удобного хранения вложений писем, 1С 8 имеет тип «Хранилище значения», который позволяет хранить двоичные данные, далее при получении сообщений объектом «ИнтернетПочта» рассмотрим возможность хранения в «Хранилище значения».
Получатели = "";
Файлы = "";
// Как и в работе с 7.7 все это работает
// только с Microsoft Outlook Express или
// Microsoft Outlook
Почта = Новый Почта;
// Более подробно о "Подключиться()" можно прочитать
// в синтакс-помошнике
Почта.Подключиться();
// Выбираем все сообщения
СообщенияСписок = Почта.Выбрать(Ложь,Ложь);
Для каждого Сообщение Из СообщенияСписок Цикл
ТабСтрока = ТабличноеПоле.Добавить();
//Получателей может быть много
Для каждого ПолучательИз Сообщение.Получатели Цикл
ТабСтрока.Кому=Получатели;
Попытка
ТабСтрока.Тема = Сообщение.Тема;
ТабСтрока.Текст = Сообщение.Текст;
ТабСтрока.Дата = Сообщение.ДатаПолучения;
// Перебираем вложения письма, их
// тоже может быть много
Для каждогоВложениеИзСообщение.ВложенияЦикл
Файлы=Файлы+Вложение.Наименование+", ";
ТабСтрока.ПутьВложения = Файлы;
//Конец 1С почта
Для полного понимания эффективности 1С: Предприятие 8, рекомендую посмотреть как устроено все в «Управление торговлей». Там хранение вложений имеет тип «Хранилище значения», который позволяет хранить двоичные данные.
Отправка почты в 1С: Предприятие 8
Отправка сообщения происходит так же как и в прошлом примере с той разницей, что надо подготовить сообщение к отправке
// Добавляем текст, тему, получателя,
// вложение
Сообщение = Новый ПочтовоеСообщение;
Сообщение.Текст="текст сообщения";
Сообщение.Отправитель="exchange_center@efrlab.ru";
Сообщение.Тема="Тема сообщения";
Сообщение.Получатели.Добавить(exchange_office@efrlab.ru);
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные("C:\file.jpg"),"C:\file.jpg");
Почта=Новый Почта;
// подключаемся без параметров, к клиенту // установленному по умолчанию в системе Почта.Подключиться(,);
Попытка
Почта.Послать(Сообщение,Истина);
Возврат;
//отключение 1с почта
Почта.Отключиться();
В MS Outlook встроена защита от несанкционированного доступа к адресной книге и базе почтовых сообщений, и защита от несанкционированной отправки электронных писем через службы Outlook.
В Outlook 2003 система безопасности срабатывает не только при попытке получить адрес отправителя письма, но даже при попытке получить его текст. В действительности защита выражается в показываемом пользователю окне системы безопасности при обращении к некоторым объектам и свойствам объектов Outlook и предлагает открыть доступ на определенное время.
1С почта. Получение списка сообщений объектом «ИнтернетПочта»
Перед подключением к почтовому серверу, для объекта «ИнтернетПочта» необходимо заполнить данные Профиля учетной записи, и затем передать эти данные в метод «Подключиться».
// SMTP сервер
ПрофильПочты.АдресСервераSMTP="smtp.mail.ru";
// Порт SMTP сервера
ПрофильПочты.ПортSMTP=2525;
// POP3 сервер
ПрофильПочты.АдресСервераPOP3="pop.mail.ru";
// Порт POP3 сервера
ПрофильПочты.ПортPOP3 =110;
// Пароль к почтовому ящику
ПрофильПочты.Пароль=12345678;
// Пароль пользователя для SMTP сервера
ПрофильПочты.ПарольSMTP =12345678;
// Логин пользователя
ПрофильПочты.Пользователь="user";
// Логин пользователя для SMTP сервера
ПрофильПочты.ПользовательSMTP="user";
// Время ожидания выполнения операции в секундах
ПрофильПочты.ВремяОжидания=50;
Почта= Новый ИнтернетПочта;
Попытка
Возврат;
Заголовки = Почта.ПолучитьЗаголовки();
Если Заголовки.Количество()=0 Тогда
// Загрузка сообщений в список 1с почта
Сообщения=Почта.Выбрать(Истина, Заголовки);
// Внимание! При прохождениии по этому циклу
// сообщения с сервера удаляются
Для каждого Сообщение Из Сообщения Цикл
ТабСтрока.Дата=Сообщение.ДатаОтправления;
ТабСтрока.ОтКого=Сообщение.Отправитель.Пользователь+" <"+Сообщение.Отправитель.Адрес+"> ";
ТабСтрока.Тема=Сообщение.Тема;
// Перебираем получателей сообщения КомуВходящие="";
Для каждого Получатель Из Сообщение.Получатели Цикл
ТабСтрока.Кому=КомуВходящие;
// Перебираем тексты сообщения
ТекстВходящие="";
Для каждого ТекстСообщения Из Сообщение.Тексты Цикл
ТабСтрока.Текст=
ТекстВходящие;
// Перебираем вложения письма
Файлы="";
Для каждого Вложение Из Сообщение.Вложения Цикл
Файлы=Файлы+Вложение.Наименование);
ТабСтрока.ПутьВложения=Файлы;
// Отключение
Почта.Отключиться();
На этом пока все.
С уважением, ЛИС
09.04.2010
Поделитесь с друзьями |
Оставьте голос |
Так же будет полезно узнать |
|