1С 8.3 Отправить письмо с вложенным файлом Excel
Данные > Примеры кода 1С > 1С 8.3 Электронная почта (E-mail)
Перейти в раздел примеры кода 1С 8.3:
Отправить письмо по электронной почте с вложенной таблицей Excel в 1С 8.3:
Процедура СформироватьДокумент(Макет)
ТабДок = Новый ТабличныйДокумент;
ШапкаОбласть = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(ШапкаОбласть);
ПотокВПамяти = Новый ПотокВПамяти();
ТабДок.Записать(ПотокВПамяти, ТипФайлаТабличногоДокумента.XLSX);
ДвоичныеДанные = ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные();
Тема = "Тема от: "+Строка(Формат(ТекущаяДата()-86400, "ДФ=dd.MM.yyyy"));
ТекстПисьма = "";
ОтправитьПисьмоПоЭлектроннойПочте("Адрес отправки", ,Тема, ТекстПисьма, ДвоичныеДанные, "Имя отправителя");
КонецПроцедуры
&НаСервере
Процедура ОтправитьПисьмоПоЭлектроннойПочте(АдресПочты, Копия = Неопределено, Тема, ТекстПисьма, Вложение = Неопределено, ИмяОтправителя)
ПочтовыйПрофиль = Новый ИнтернетПочтовыйПрофиль;
ПочтовыйПрофиль.ВремяОжидания = 300;// Google рекомендует 5 минут
// Исходящая почта
//Если ФормироватьIMAPПрофиль Тогда
ПочтовыйПрофиль.АдресСервераIMAP = "imap.yandex.ru"; // imap.mail.ru
ПочтовыйПрофиль.ПользовательIMAP = "from1C@yandex.ru"; // from1C@mail.ru
ПочтовыйПрофиль.ПортIMAP = 993; // 993
Попытка
ПочтовыйПрофиль.ИспользоватьSSLIMAP = Истина;
Исключение
Сообщить("Не работает служба SSL IMAP! Для корректной работы необходима платформа 1С версии не менее 8.3!");
КонецПопытки;
ПочтовыйПрофиль.ПарольIMAP = "Ro1Cte921hAb8sKf4";
//КонецЕсли;
//Если ФормироватьSMTPПрофиль Тогда
ПочтовыйПрофиль.АдресСервераSMTP = "smtp.yandex.ru"; // smtp.mail.ru
ПочтовыйПрофиль.ПользовательSMTP = "from1C@yandex.ru"; // from1C@mail.ru
ПочтовыйПрофиль.ПортSMTP = 465; // 465
Попытка
ПочтовыйПрофиль.ИспользоватьSSLSMTP = Истина;
Исключение
Сообщить("Не работает служба SSL SMTP! Для корректной работы необходима платформа 1С версии не менее 8.3!");
КонецПопытки;
ПочтовыйПрофиль.ПарольSMTP = "Ro1Cte921hAb8sKf4";
ПочтовыйПрофиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
//КонецЕсли;
// Входящая почта
//Если ФормироватьPOP3Профиль Тогда
ПочтовыйПрофиль.АдресСервераPOP3 = "pop.yandex.ru"; // pop.mail.ru
ПочтовыйПрофиль.Пользователь = "from1C@yandex.ru"; // from1C@mail.ru
ПочтовыйПрофиль.ПортPOP3 = 993; // 995
Попытка
ПочтовыйПрофиль.ИспользоватьSSLPOP3 = Истина;
Исключение
Сообщить("Не работает служба SSL POP3! Для корректной работы необходима платформа 1С версии не менее 8.3!");
КонецПопытки;
ПочтовыйПрофиль.Пароль = "Ro1Cte921hAb8sKf4";
//Если НастройкиСоединения.СпособPOP3Аутентификации = Перечисления.СпособыPOP3Аутентификации.APOP Тогда
// ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.APOP;
//ИначеЕсли НастройкиСоединения.СпособPOP3Аутентификации = Перечисления.СпособыPOP3Аутентификации.CramMD5 Тогда
// ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.CramMD5;
//Иначе
// ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная;
//КонецЕсли;
//КонецЕсли;
ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение;
ПочтовоеСообщение.Отправитель.Адрес = "Адрес";
ПочтовоеСообщение.ИмяОтправителя = ИмяОтправителя;
ПочтовоеСообщение.Получатели.Добавить(АдресПочты);
ПочтовоеСообщение.Тема = Тема;
ПочтовоеСообщение.Тексты.Добавить(ТекстПисьма, ТипТекстаПочтовогоСообщения.ПростойТекст);
Если Вложение <> Неопределено Тогда
Тема = Тема+".xlsx";
ПочтовоеСообщение.Вложения.Добавить(Вложение,Тема);
КонецЕсли;
Email = Новый ИнтернетПочта;
Попытка
Email.Подключиться(ПочтовыйПрофиль);
Email.Послать(ПочтовоеСообщение);
// Сообщить("Отправлено письмо на e-mail:"+СокрЛП(ТекПолучатель));
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Email.Отключиться();
КонецПроцедуры
ТабДок = Новый ТабличныйДокумент;
ШапкаОбласть = Макет.ПолучитьОбласть("Шапка");
ТабДок.Вывести(ШапкаОбласть);
ПотокВПамяти = Новый ПотокВПамяти();
ТабДок.Записать(ПотокВПамяти, ТипФайлаТабличногоДокумента.XLSX);
ДвоичныеДанные = ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные();
Тема = "Тема от: "+Строка(Формат(ТекущаяДата()-86400, "ДФ=dd.MM.yyyy"));
ТекстПисьма = "";
ОтправитьПисьмоПоЭлектроннойПочте("Адрес отправки", ,Тема, ТекстПисьма, ДвоичныеДанные, "Имя отправителя");
КонецПроцедуры
&НаСервере
Процедура ОтправитьПисьмоПоЭлектроннойПочте(АдресПочты, Копия = Неопределено, Тема, ТекстПисьма, Вложение = Неопределено, ИмяОтправителя)
ПочтовыйПрофиль = Новый ИнтернетПочтовыйПрофиль;
ПочтовыйПрофиль.ВремяОжидания = 300;// Google рекомендует 5 минут
// Исходящая почта
//Если ФормироватьIMAPПрофиль Тогда
ПочтовыйПрофиль.АдресСервераIMAP = "imap.yandex.ru"; // imap.mail.ru
ПочтовыйПрофиль.ПользовательIMAP = "from1C@yandex.ru"; // from1C@mail.ru
ПочтовыйПрофиль.ПортIMAP = 993; // 993
Попытка
ПочтовыйПрофиль.ИспользоватьSSLIMAP = Истина;
Исключение
Сообщить("Не работает служба SSL IMAP! Для корректной работы необходима платформа 1С версии не менее 8.3!");
КонецПопытки;
ПочтовыйПрофиль.ПарольIMAP = "Ro1Cte921hAb8sKf4";
//КонецЕсли;
//Если ФормироватьSMTPПрофиль Тогда
ПочтовыйПрофиль.АдресСервераSMTP = "smtp.yandex.ru"; // smtp.mail.ru
ПочтовыйПрофиль.ПользовательSMTP = "from1C@yandex.ru"; // from1C@mail.ru
ПочтовыйПрофиль.ПортSMTP = 465; // 465
Попытка
ПочтовыйПрофиль.ИспользоватьSSLSMTP = Истина;
Исключение
Сообщить("Не работает служба SSL SMTP! Для корректной работы необходима платформа 1С версии не менее 8.3!");
КонецПопытки;
ПочтовыйПрофиль.ПарольSMTP = "Ro1Cte921hAb8sKf4";
ПочтовыйПрофиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
//КонецЕсли;
// Входящая почта
//Если ФормироватьPOP3Профиль Тогда
ПочтовыйПрофиль.АдресСервераPOP3 = "pop.yandex.ru"; // pop.mail.ru
ПочтовыйПрофиль.Пользователь = "from1C@yandex.ru"; // from1C@mail.ru
ПочтовыйПрофиль.ПортPOP3 = 993; // 995
Попытка
ПочтовыйПрофиль.ИспользоватьSSLPOP3 = Истина;
Исключение
Сообщить("Не работает служба SSL POP3! Для корректной работы необходима платформа 1С версии не менее 8.3!");
КонецПопытки;
ПочтовыйПрофиль.Пароль = "Ro1Cte921hAb8sKf4";
//Если НастройкиСоединения.СпособPOP3Аутентификации = Перечисления.СпособыPOP3Аутентификации.APOP Тогда
// ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.APOP;
//ИначеЕсли НастройкиСоединения.СпособPOP3Аутентификации = Перечисления.СпособыPOP3Аутентификации.CramMD5 Тогда
// ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.CramMD5;
//Иначе
// ПочтовыйПрофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная;
//КонецЕсли;
//КонецЕсли;
ПочтовоеСообщение = Новый ИнтернетПочтовоеСообщение;
ПочтовоеСообщение.Отправитель.Адрес = "Адрес";
ПочтовоеСообщение.ИмяОтправителя = ИмяОтправителя;
ПочтовоеСообщение.Получатели.Добавить(АдресПочты);
ПочтовоеСообщение.Тема = Тема;
ПочтовоеСообщение.Тексты.Добавить(ТекстПисьма, ТипТекстаПочтовогоСообщения.ПростойТекст);
Если Вложение <> Неопределено Тогда
Тема = Тема+".xlsx";
ПочтовоеСообщение.Вложения.Добавить(Вложение,Тема);
КонецЕсли;
Email = Новый ИнтернетПочта;
Попытка
Email.Подключиться(ПочтовыйПрофиль);
Email.Послать(ПочтовоеСообщение);
// Сообщить("Отправлено письмо на e-mail:"+СокрЛП(ТекПолучатель));
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Email.Отключиться();
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник