Отправка писем на электронную почту типовой функцией 1С

04.07.20

Интеграция - Email рассылки

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Отправка писем на электронную почту типовой функцией 1с:
.epf 8,20Kb
90
90 Скачать (1 SM) Купить за 1 850 руб.

   Здравствуйте, коллеги. Мне понадобилось отправить письмо из внешней обработки, используя почтовый клиент, встроенный в 1с и выбранный почтовый адрес. Наткнулся на множество статей посвященной этой теме, в том числе //infostart.ru/public/715184/, где описано создание обработки по отправки писем. В подобных статьях я видел только программный ввод логина и пароля от почтового ящика, но нигде не видел, того что мне нужно. Также, уже после решения вопроса, увидел комментарий под одним из вопросов связанных с этой темой вот тут https://forum.infostart.ru/forum9/topic144507/, пользователь Boneman указал нужную функцию. В данной статье хочу описать решение проблемы с которой я столкнулся.    

   Создадим обработку, которая использует встроенный почтовый клиент для рассылки писем.


Где реквизит "Почта отправителя" - ссылка на справочник "Учетные записи электронной почты". Код команды - "отправить письма на сервере". 
 

 
 Отправить письма по адресам

Для начала формируем строку из адресов электронной почты на которые надо отправить письма. Далее формируем параметры письма. 
 

 
 Сформировать параметры письма


&НаСервере
 //Параметры:
 //УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - ссылка на
 //                учетную запись электронной почты.
 //ПараметрыПисьма - структура - содержит всю необходимую информацию о письме:
 //                  содержит следующие ключи:
 //   Кому*      - Массив структур, строка - Интернет адрес получателя письма.
 //                Адрес         - строка - почтовый адрес.
 //                Представление - строка - имя адресата.
 //   Копии      - массив структур, строка - Интернет адреса получателей письма
 //                используется при формировании письма для поля копий
 //                в случае массива структур, формат каждой структуры:
 //                Адрес         - строка - почтовый адрес (должно быть обязательно заполнено).
 //                Представление - строка - имя адресата.
 //   СлепыеКопии - массив структур, строка - Интернет адреса получателей письма
 //                используется при формировании письма для поля скрытых копий
 //                в случае массива структур, формат каждой структуры:
 //                Адрес         - строка - почтовый адрес (должно быть обязательно заполнено).
 //                Представление - строка - имя адресата.
 //
 //   Тема*      - Строка - тема почтового сообщения.
 //   Тело*      - тело почтового сообщения (простой текст в кодировке win-1251).
 //   Важность   - ВажностьИнтернетПочтовогоСообщения
 //   Вложения   - Соответствие
 //                ключ     - наименованиеВложения - строка - наименование вложения
 //                значение - ДвоичныеДанные,Структура - либо двоичные данные вложения, либо структура,
 //                           содержащая следующие свойства:
 //                           "ДвоичныеДанные" - ДвоичныеДанные - двоичные данные вложения
 //                           "Идентификатор" - Строка - идентификатор вложения, используется для хранения картинок,
 //                                                      отображаемых в теле письма.
 //
 //Дополнительные ключи структуры, которые могут использоваться:
 //   АдресОтвета - Соответствие - см. такие же поля как и кому.
 //   ИдентификаторыОснований - строка - идентификаторы оснований данного письма.
 //   ОбрабатыватьТексты  - Булево - необходимость обрабатывать тексты письма при отправке.
 //   УведомитьОДоставке  - Булево - необходимость запроса уведомления о доставке.
 //   УведомитьОПрочтении - Булево - необходимость запроса уведомления о прочтении.
 //   ТипТекста   - Строка / Перечисление.ТипыТекстовЭлектронныхПисем/ТипТекстаПочтовогоСообщения  определяет тип
 //                 переданного теста допустимые значения:
 //                 HTML/ТипыТекстовЭлектронныхПисем.HTML - текст почтового сообщения в формате HTML.
 //                 ПростойТекст/ТипыТекстовЭлектронныхПисем.ПростойТекст - простой текст почтового сообщения.
 //                                                                         Отображается "как есть" (значение по
 //                                                                         умолчанию).
 //                 РазмеченныйТекст/ТипыТекстовЭлектронныхПисем.РазмеченныйТекст - текст почтового сообщения в формате
 //   Rich Text.  
Функция СформироватьПараметрыПисьма(АдресаКоторымОтправляемПисьма)
	

	
	ПараметрыПисьма = Новый Структура;
	ПараметрыПисьма.Вставить("Кому", АдресаКоторымОтправляемПисьма);
	ПараметрыПисьма.Вставить("УчетнаяЗапись", ПочтаОтправителя);                                                               
	ПараметрыПисьма.Вставить("АдресОтвета", АдресаКоторымОтправляемПисьма);
	ПараметрыПисьма.Вставить("Тема", ТемаПисьма);	
	ПараметрыПисьма.Вставить("Тело", ТекстПисьма);
	ПараметрыПисьма.Вставить("ТипТекста", "ПростойТекст");
	
	
	Возврат ПараметрыПисьма;
	
КонецФункции

 

После этого используем типовую процедуру. 
 

&НаСервере
Процедура ОтправитьПочтовоеСообщениеСервер(ПараметрыПисьма)
	
	РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(ПочтаОтправителя, ПараметрыПисьма);
	
Конецпроцедуры

Таким образом осуществляется рассылка писем с использованием учетной записи электронной почты.   

Обработка протестирована на релизе ЕРП 2.4.11.98.

См. также

Взаиморасчеты Email рассылки Акт сверки Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Внешняя обработка для Бухгалтерии 3.0 - позволяет автоматически формировать документы «Акт сверки расчетов» с контрагентами за выбранный период с последующей фоновой отправкой на почту контрагента.

3000 руб.

25.11.2020    24467    238    8    

205

SALE! 20%

Email рассылки Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Решение для массовой рассылки печатных форм (в том числе и дополнительных) любых документов, и произвольных файлов. Рассылка возможна посредством электронной почты, Telegram и файловой системы. Рассылка пакета документов. Добавление факсимильных печати и подписи. Произвольные шаблоны HTML/Simple text с автозаполнением любыми полями документа. Любые форматы файлов. Упаковка вложений в архив. Транслитерация имен файлов. Разбиение рассылки на произвольные порции. Обход спам-фильтров. Журналирование рассылок.

4920 3936 руб.

30.06.2022    11007    72    98    

34

Загрузка и выгрузка в Excel Монитор заказов Email рассылки Пользователь Бухгалтерский учет 8.3.14 1С:Бухгалтерия 3.0 Россия Управленческий учет Платные (руб)

Внешняя обработка, осуществляющая автоматическую загрузку новых (непрочитанных) писем, получаемых по электронной почте по расписанию и обрабатывающая вложенные файлы-заказы (в формате EXCEL) по заранее заданному шаблону заказа с различными уведомлениями обработки заказа.

6000 руб.

13.10.2021    10121    3    0    

3

Взаиморасчеты Email рассылки Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Обработка позволяет автоматически сформировать акты сверок на почту контрагентов (почта берется из контактных данных контрагента). При формировании акта сверки формируется подпись с указанием контактов для связи с бухгалтерией нашей организации (формируется исходя из контактов из карточки организации). Присутствует возможность ручного редактирования электронной почты контрагента для отправки. Отправка осуществляется с системной записи электронной почты. В случае, если у контрагента нет адреса электронной почты, эти контрагенты будут выведены в отдельной табличной части. Это очень удобно, так как сразу наглядно виден список контрагентов, которым невозможно отправить акты сверок!

6720 руб.

11.05.2021    9456    6    1    

6

Email рассылки Взаиморасчеты Акт сверки Бухгалтер Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Обработка для конфигурации Управление торговлей 10.3 (КА 1.1, УПП 1.3), которая автоматически формирует акты сверок взаиморасчетов, позволяет их скопом распечатать и разослать по электронной почте контрагентам.

2160 руб.

08.02.2018    31483    47    0    

54
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1324 04.07.20 12:57 Сейчас в теме
Разбор типовых механизмов и варианта их применения нормальная тема.
"Обработка протестирована на релизе ЕРП 2.4.11.98." - предположу что это функционал БСП, копните чуть глубже, возможно найдете и ссылку на документацию.
Код можно убрать под спойлер, чтобы основной контекст статьи прочитать, после в код углубляться.
Вариант описать общую схему компонентов подсистемы, статья будет более полезна.
Ignatov_mu; Lapitskiy; BoryaMbi; freeek; Andrei_Ivanov; AlexK_2012; asg.aleks; awk; +8 Ответить
2. Andrei_Ivanov 176 10.07.20 15:55 Сейчас в теме
(1) Спасибо за комментарий.
3. user1570538 26.11.21 20:04 Сейчас в теме
Пишет ошибку БП

Учетную запись проверил. Настройки принимает.
Прикрепленные файлы:
4. Andrei_Ivanov 176 26.11.21 22:09 Сейчас в теме
(3) Добрый день. Я посмотрел в демо БП 3.0 (3.0.89.51) - не думаю, что версия критична, так как на 505 строке у меня такой же код.
Ошибка появится, в случае, если из обработки поле "Почта отправителя" не заполнено (что нельзя сделать), либо оно не того типа.
У меня, при проверке - такой ошибки не возникает.
Возможно ли, что у вас изменен тип реквизита обработки? Мне от вас достаточно будет скрина настроек обработки - почту можно замазать.
5. user1570538 28.11.21 16:43 Сейчас в теме
Спасибо за обратную связь, но не совсем понимаю какой скрин настроек от меня необходим?

Тип поля "почта отправителя" в конфигураторе "строка".
6. Andrei_Ivanov 176 28.11.21 17:11 Сейчас в теме
(5) Должна быть типа - "СправочникСсылка.УчетныеЗаписиЭлектроннойПочты".
Возможно тип слетел. Возможно в вашей версии бухгалтерии справочник по другому называется.
Попробуйте поменять тип.
7. user1570538 28.11.21 22:23 Сейчас в теме
(6) Запустилось. Спасибо.
8. ogursoft 29.12.21 16:19 Сейчас в теме
А подскажите как отправить с системной учетной записи, как программно получить на нее ссылку?
9. Andrei_Ivanov 176 29.12.21 18:08 Сейчас в теме
(8) Если выбрать системную учетную запись в "Почта отправителя" - не отправляется ?

Программно (Смотрю в ERP):
Если с клиента - ПредопределенноеЗначение("Справочник.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты")

Если с сервера (можно использовать оба варианта) -
Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты
ПредопределенноеЗначение("Справочник.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты")
user1216454; +1 Ответить
10. ogursoft 30.12.21 11:10 Сейчас в теме
(9) Спасибо за оперативный ответ!
Andrei_Ivanov; +1 Ответить
11. ogursoft 26.01.22 08:35 Сейчас в теме
А возможно ли использовать шаблоны сообщений?
12. Andrei_Ivanov 176 26.01.22 10:17 Сейчас в теме
(11) Добрый день. Не реализовывал такую возможность.
13. Aliya_St 24.03.22 09:33 Сейчас в теме
Всем доброго времени суток! Подскажите, пожалуйста, если я хочу задать список пользователей, которые будут стоять в копии письма. Как это задать?
14. Andrei_Ivanov 176 24.03.22 14:25 Сейчас в теме
(13) Добрый день. В данный момент это в обработке не реализовано. Необходима доработка.
Чтобы доработать, как я понимаю, нужно в функцию "СформироватьПараметрыПисьма" добавить строку ПараметрыПисьма.Вставить("Копии", Копии), предварительно его нужно заполнить, аналогично переменной "АдресаКоторымОтправляемПисьма".
15. Aliya_St 24.03.22 15:35 Сейчас в теме
(14)я имела ввиду вообще) не по обработке, да я уже сделала по аналогии, спасибо Вам)
16. пользователь 04.01.24 23:19
Сообщение было скрыто модератором.
...
17. vechiy 35 23.03.24 21:15 Сейчас в теме
коллеги подскажите как отправить вложение правильно? структуру завернуть в массив? у меня не выходит. есть пример у кого-нибудь?
18. KazanKokos 11 07.06.24 18:38 Сейчас в теме
(17) тоже интересует. копаюсь в коде но нигде нет примера....

упд: Нашел! https://infostart.ru/1c/articles/577850/
Оставьте свое сообщение