Работа с электронной почтой в 1С:Предприятие 8

20.05.2009 г.

Автор: ведущий специалист по разработке дополнений к типовым решениям "1С:Предприятие 8" Анна Бондаренко

В рамках развития типовых конфигураций в сторону CRM-систем в конфигурациях появилась возможность работы с электронной почтой. С помощью данного механизма при необходимости возможно прямо из программы 1С:Предприятие отправить письмо адресату с текстом, с прикрепленным файлом, имеется возможность оповестить все клиентов о чем-либо, либо сформировав печатную форму документа сразу отправить ее адресату, а также имеется возможность принимать и обрабатывать входящие сообщения. В 1С:Предприятие существует два способа работы с электронной почтой:

  1. через установленного на компьютере пользователя почтового клиента (почтовой программы, такой как Outlook, Bat и т.п.). Основным объектом является объект Почта;
  2. работая напрямую с почтовым сервером (напрямую с корпоративным почтовым сервером, сервером yandex, mail.ru и т.д.). Основным объектом является объект ИнтернетПочта.

Каждый из вариантов имеет свои достоинства и недостатки.

Объект Почта позволяет принимать и отправлять почтовые сообщения посредством установленного (и настроенного) почтового клиента (почтовой программы). Все настройки, связанные с подключением к почтовым серверам, определяются в учетной записи почтового клиента. Через объект Почта фактически происходит подключение к учетной записи программы — почтового клиента по умолчанию. Чтение писем производится из папки Входящие (из других папок произвести это нельзя), при этом есть возможность получить только непрочитанные письма. При отправке писем нужно учитывать особенности системы безопасности каждого почтового клиента. Обычно стоит запрет на отправку сообщений «из другой программы от имени почтового клиента». Этот факт особенно важно учитывать при организации отправки без участия пользователя (ночью с сервера…). Следует отметить, что работа с объектом Почта на стороне сервера 1С:Предприятии из модуля внешнего сообщения невозможна.

Пример создание и отправки почтового сообщение с помощью объекта Почта приведен на рис.1

Рис.1

Чтение сообщений осуществляется посредством выборки (например, только непрочитанные и конверты вместе с вложениями). Пример приведен на рис.2

Рис.2

К достоинствам данного подхода следует отнести отсутствие необходимости указывать все настройки подключения к почтовому серверу в коде (они содержатся в почтовом клиенте и настраиваются администратором).

С помощью объекта ИнтернетПочта также возможно организовывать прием, отправку писем, но в отличие от объекта Почта, на локальной машине не требуется наличие установленного (и настроенного) почтового клиента по умолчанию. Объект ИнтернетПочта позволяет работать с почтовыми серверами напрямую по протоколам SMTP, POP3.

Для подключения к какому-либо серверу (в том числе и к почтовому) необходимо знать его адрес и порт, на котором обслуживаются запросы в соответствии с интересующим протоколом. Для работы с почтовым сервером объект ИнтернетПочта может использовать протокол SMTP (отправка сообщений, порт по умолчания №25) и POP3(получение сообщений, порт по умолчанию №110). Настройки обращения к почтовым серверам указываются в специализированном объекте ИнтернетПочтовыйПрофиль. Пример отправки почтовых сообщений приведен на рис.3.

Рис.3

В данном листинге используются следующие входные параметры:

  • ИмяФайлаСообщения – полное имя отправляемого файла;
  • СерверSMTP – имя сервера, например smtp.yandex.ru
  • ПочтовыйАдресОбмена – почтовый адрес;
  • Пользователь;
  • Пароль

Пример получения сообщения приведен на рис.4. В данном примере производится выборка всех сообщений по заданным заголовкам (НужныеЗаголовкиСообщений), где Почта = Новый ИнтернетПочта.

Рис.4

Следует отметить, что достоинством использования объекта ИнтернетПочта является возможность работы как со стороны сервера 1С:Предприятие, так и из модуля внешнего соединения (в противоположность объекту Почта).