Здравствуйте, коллеги. Мне понадобилось отправить письмо из внешней обработки, используя почтовый клиент, встроенный в 1с и выбранный почтовый адрес. Наткнулся на множество статей посвященной этой теме, в том числе //infostart.ru/public/715184/, где описано создание обработки по отправки писем. В подобных статьях я видел только программный ввод логина и пароля от почтового ящика, но нигде не видел, того что мне нужно. Также, уже после решения вопроса, увидел комментарий под одним из вопросов связанных с этой темой вот тут https://forum.infostart.ru/forum9/topic144507/, пользователь Boneman указал нужную функцию. В данной статье хочу описать решение проблемы с которой я столкнулся.
Создадим обработку, которая использует встроенный почтовый клиент для рассылки писем.
Где реквизит "Почта отправителя" - ссылка на справочник "Учетные записи электронной почты". Код команды - "отправить письма на сервере".
Для начала формируем строку из адресов электронной почты на которые надо отправить письма. Далее формируем параметры письма.
&НаСервере
//Параметры:
//УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - ссылка на
// учетную запись электронной почты.
//ПараметрыПисьма - структура - содержит всю необходимую информацию о письме:
// содержит следующие ключи:
// Кому* - Массив структур, строка - Интернет адрес получателя письма.
// Адрес - строка - почтовый адрес.
// Представление - строка - имя адресата.
// Копии - массив структур, строка - Интернет адреса получателей письма
// используется при формировании письма для поля копий
// в случае массива структур, формат каждой структуры:
// Адрес - строка - почтовый адрес (должно быть обязательно заполнено).
// Представление - строка - имя адресата.
// СлепыеКопии - массив структур, строка - Интернет адреса получателей письма
// используется при формировании письма для поля скрытых копий
// в случае массива структур, формат каждой структуры:
// Адрес - строка - почтовый адрес (должно быть обязательно заполнено).
// Представление - строка - имя адресата.
//
// Тема* - Строка - тема почтового сообщения.
// Тело* - тело почтового сообщения (простой текст в кодировке win-1251).
// Важность - ВажностьИнтернетПочтовогоСообщения
// Вложения - Соответствие
// ключ - наименованиеВложения - строка - наименование вложения
// значение - ДвоичныеДанные,Структура - либо двоичные данные вложения, либо структура,
// содержащая следующие свойства:
// "ДвоичныеДанные" - ДвоичныеДанные - двоичные данные вложения
// "Идентификатор" - Строка - идентификатор вложения, используется для хранения картинок,
// отображаемых в теле письма.
//
//Дополнительные ключи структуры, которые могут использоваться:
// АдресОтвета - Соответствие - см. такие же поля как и кому.
// ИдентификаторыОснований - строка - идентификаторы оснований данного письма.
// ОбрабатыватьТексты - Булево - необходимость обрабатывать тексты письма при отправке.
// УведомитьОДоставке - Булево - необходимость запроса уведомления о доставке.
// УведомитьОПрочтении - Булево - необходимость запроса уведомления о прочтении.
// ТипТекста - Строка / Перечисление.ТипыТекстовЭлектронныхПисем/ТипТекстаПочтовогоСообщения определяет тип
// переданного теста допустимые значения:
// HTML/ТипыТекстовЭлектронныхПисем.HTML - текст почтового сообщения в формате HTML.
// ПростойТекст/ТипыТекстовЭлектронныхПисем.ПростойТекст - простой текст почтового сообщения.
// Отображается "как есть" (значение по
// умолчанию).
// РазмеченныйТекст/ТипыТекстовЭлектронныхПисем.РазмеченныйТекст - текст почтового сообщения в формате
// Rich Text.
Функция СформироватьПараметрыПисьма(АдресаКоторымОтправляемПисьма)
ПараметрыПисьма = Новый Структура;
ПараметрыПисьма.Вставить("Кому", АдресаКоторымОтправляемПисьма);
ПараметрыПисьма.Вставить("УчетнаяЗапись", ПочтаОтправителя);
ПараметрыПисьма.Вставить("АдресОтвета", АдресаКоторымОтправляемПисьма);
ПараметрыПисьма.Вставить("Тема", ТемаПисьма);
ПараметрыПисьма.Вставить("Тело", ТекстПисьма);
ПараметрыПисьма.Вставить("ТипТекста", "ПростойТекст");
Возврат ПараметрыПисьма;
КонецФункции
После этого используем типовую процедуру.
&НаСервере
Процедура ОтправитьПочтовоеСообщениеСервер(ПараметрыПисьма)
РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(ПочтаОтправителя, ПараметрыПисьма);
Конецпроцедуры
Таким образом осуществляется рассылка писем с использованием учетной записи электронной почты.
Обработка протестирована на релизе ЕРП 2.4.11.98.