Работа с вложениями
Почтовое вложение — это экземпляр типа ВложениеПисьма
, который обладает собственным набором характеристик. Письмо может содержать как одно, так и несколько вложений, а также не содержать вложений вообще. Тип ВложениеПисьма
является общим как для исходящего, так и входящего сообщения.
Для того чтобы работать с вложениями, у типа Письмо
существует несколько методов:
ПриложитьФайл()
— добавляет файл во вложение. В параметре вы можете передать путь к файлу (Строка
) или сам файл (Файл
),ПриложитьДанные()
— в качестве источника данных можно указать экземпляры типовСтрока
,ПотокЧтения
илиБайты
,УдалитьВложение()
— удаляет существующее вложение. В параметре нужно передать идентификатор (Ууид
) вложения.
Для хранения вложений используется свойство Письмо.Вложения
. Это массив экземпляров типа ВложениеПисьма
.
Сам тип ВложениеПисьма
имеет свойства, описывающие вложение: Ид
(тип Строка
), Название
(тип Строка
), Данные
(тип Байты
) — собственно сами данные вложения и ТипСодержимого
(Строка
) — MIME-тип вложения, который соответствует заголовку «Content-Type».
При добавлении вложения обязательной частью вложения являются его данные. Остальные свойства вы можете указывать по желанию.
При добавлении вложения в исходящее сообщение Ид
вложения будет сгенерирован автоматически.
При загрузке данных (ПриложитьДанные()
типов Байты
или ПотокЧтения
), если вы не задали название вложения, в качестве названия будет использовано значение по умолчанию — «Attachment». Если таких файлов будет несколько, это является допустимым.
При загрузке файла (ПриложитьФайл()
) будет выполнена попытка получить все незаполненные свойства из свойств файла (название, тип содержимого).
ВложениеПисьма
не имеет конструктора. Экземпляр типа ВложениеПисьма
нужен для присоединения к исходящему сообщению или для описания вложения во входящем сообщении. Таким образом, его использование неотделимо от экземпляра сообщения электронной почты, и нет необходимости в отдельных конструкторах ВложениеПисьма
. Для создания вложения вы можете использовать методы Письмо.ПриложитьФайл()
и Письмо.ПриложитьДанные()
.
Пример добавления файла в исходящее письмо
Пример 1. Приложить файл к письму
метод ПриложитьФайлКПисьму()
// 1. Подготовить письмо
пер Сообщение = Письмо("sender@1c.ru")
Сообщение.ДобавитьПолучателей("recipient@1c.ru")
Сообщение.Тема = "Тема сообщения электронной почты"
Сообщение.УстановитьТекстКакСтроку("Текст сообщения электронной почты")
// 2. Добавить вложения
Сообщение.ПриложитьФайл("C:\Documents\Doc1.docx", "Приложение к письму.docx")
Сообщение.ПриложитьФайл("C:\Documents\Вложение.xlsx")
// 3. Отправить письмо
пер ПараметрыПодключения = ПолучитьПараметрыПодключенияSmtp()
КлиентSmtp.Отправить(ПараметрыПодключения, Сообщение)
;
Пример 2. Добавить файл во вложение
метод ДобавитьФайлВоВложение()
// 1. Подготовить письмо
пер Сообщение = Письмо("sender@1c.ru")
Сообщение.ДобавитьПолучателей("recipient@1c.ru")
Сообщение.Тема = "Тема сообщения электронной почты"
Сообщение.УстановитьТекстКакСтроку("Текст сообщения электронной почты")
// 2. Добавить вложение
пер ФайлДляОтправки = новый Файл("C:\Documents\Doc1.pdf")
Сообщение.ПриложитьДанные(ФайлДляОтправки.ОткрытьПотокЧтения(), "Приложение к письму.pdf", "application/pdf")
// 3. Отправить письмо
пер ПараметрыПодключения = ПолучитьПараметрыПодключенияSmtp()
КлиентSmtp.Отправить(ПараметрыПодключения, Сообщение)
;
Пример встроенного в текст вложения
метод ЗаполнитьПисьмоДиректору(): Письмо
пер Письмо = ШаблонПисьмаДиректору()
Письмо.УстановитьТекстКакСтроку(ПолучитьТекст(), ВидТекстаПисьма.Html)
// Картинка будет отображаться в тексте письма.
Письмо.ПриложитьФайл(Файл = "img.png",
Название = "my_image.png",
ТипСодержимого = "image/png",
Ид = "my_image.png",
ВстроенноеВТекст = Истина)
возврат Письмо
;
метод ПолучитьТекст(): String
return "<div><img border=\"0\" hspace=\"0\" alt=\"\" align=\"baseline\" apple-inline=\"yes\"" +
"id=\"my_image.png\" height=\"836\" width=\"643\" apple-width=\"yes\"" +
"apple-height=\"yes\" style=\"display:block\" src=\"cid:my_image.png\"></div>"
;
метод ОтправитьПисьмоДиректору()
пер Сообщение = ЗаполнитьПисьмоДиректору()
пер ПараметрыПодключения = ПолучитьПараметрыПодключенияSmtp()
КлиентSmtp.Отправить(ПараметрыПодключения, Сообщение)
;