PDA

Просмотр полной версии : Отправка email



frolkin.s
09.06.2012, 10:50
Добрый день, всем! 1с 8.2 УНФ. Подскажите пожалуйста как отправить например счет по электронке:
Во-первых, поле "кому" нужно вводить вручную, а хотелось бы из справочника контрагентов;
Во-вторых, после выбора учетной записи (хотелось бы чтобы вообще по умолчанию ставилась) выдает вот такую ошибку http://ybex.com/d/bvqdgeukp5hlbzoauei9jpdg8294380610ghxfbi.html.

zay
12.06.2012, 10:32
Вот функция, которая после определенной модификации дает возможность отправлать письма автоматом



// Все параметры текстовые, кроме:
// пВложения - массив, эл-ты массива - строки, имена файлов с полным путем
// пРегламентированноеЗадани е - объект "моей" базы, перечисление
// нужен исключительно для управления логированием ( процедура МодульРегламентныхЗаданий .ЗаписатьСведеньяОбОшибке( ...) )

Функция ОтправитьЭлектронноеПисьм оHTML(
пАдрес,
пИмяОтправителя = "Произвольное описание отправителя",
пОтправитель = "ЛогинОтправителя@Адрес.Поч тового.Сервера",
пТема,
пТекст,
пВложения,
пОписаниеПисьма = "",
пРегламентированноеЗадани е = Неопределено
) Экспорт


ПочтовыйПрофиль = ПолучитьПочтовыйПрофиль();

Сообщение = Новый ИнтернетПочтовоеСообщение ;

Если ПустаяСтрока(пАдрес) Тогда
Если пРегламентированноеЗадани е <> Неопределено Тогда
МодульРегламентныхЗаданий .ЗаписатьСведеньяОбОшибке( пРегламентированноеЗадани е, "В электронном письме ("+пОписаниеПисьма+") не указан адрес");
Иначе
ОбщегоНазначения.Сообщить� �бОшибке("Ошибка! В электронном письме ("+пОписаниеПисьма+") не указан адрес",,, СтатусСообщения.ОченьВажн� �е);
КонецЕсли;
Возврат ложь;
КонецЕсли;

Сообщение.Получатели.Добав ить(пАдрес);
Сообщение.Тема =пТема;
Сообщение.ИмяОтправителя=п ИмяОтправителя;
Сообщение.Отправитель=пОтп равитель;

Для каждого лИмяФайлВложения из пВложения Цикл
Если ПустаяСтрока(лИмяФайлВлож� �ния) Тогда
Продолжить;
КонецЕсли;
Попытка
Сообщение.Вложения.Добавит ь(лИмяФайлВложения);
Исключение
Если пРегламентированноеЗадани е <> Неопределено Тогда
МодульРегламентныхЗаданий .ЗаписатьСведеньяОбОшибке( пРегламентированноеЗадани е, "Присоединение к письму вложения" + лИмяФайлВложения, ОписаниеОшибки());
Иначе
ОбщегоНазначения.Сообщить� �бОшибке(ОписаниеОшибки(),,"Ошибка при присоединении вложения к электронному письму", СтатусСообщения.ОченьВажн� �е);
КонецЕсли;
Возврат ложь;
КонецПопытки;
КонецЦикла;

Сообщение.Кодировка = "windows-1251";

ТекстПисьма = Сообщение.Тексты.Добавить(� �Текст);
ТекстПисьма.Кодировка = "windows-1251";
ТекстПисьма.ТипТекста = ТипТекстаПочтовогоСообщен ия.HTML;

Почта = Новый ИнтернетПочта();

Попытка
Почта.Подключиться(Почтовы йПрофиль);
Исключение
Если пРегламентированноеЗадани е <> Неопределено Тогда
МодульРегламентныхЗаданий .ЗаписатьСведеньяОбОшибке( пРегламентированноеЗадани е, "Подключение к почтовому профилю по умолчанию", ОписаниеОшибки());
Иначе
ОбщегоНазначения.Сообщить� �бОшибке(ОписаниеОшибки(),,"Ошибка при подключению к почтовому профилю", СтатусСообщения.ОченьВажн� �е);
КонецЕсли;
Возврат ложь;
КонецПопытки;

Попытка
Почта.Послать(Сообщение);
Исключение
Если пРегламентированноеЗадани е <> Неопределено Тогда
МодульРегламентныхЗаданий .ЗаписатьСведеньяОбОшибке( пРегламентированноеЗадани е, "Отправка электронного письма "+пАдрес, ОписаниеОшибки());
Иначе
ОбщегоНазначения.Сообщить� �бОшибке(ОписаниеОшибки(),,"Ошибка при отправке электронного письма на адрес "+пАдрес, СтатусСообщения.ОченьВажн� �е);
КонецЕсли;
Возврат ложь;
КонецПопытки;

Почта.Отключиться();

Возврат истина;

КонецФункции

В функции используется функция ПолучитьПочтовыйПрофиль. В этой функции необходимо проставить "свои" настройки почтового сервера

Функция ПолучитьПочтовыйПрофиль()

Профиль = Новый ИнтернетПочтовыйПрофиль;

Профиль.АдресСервераSMTP = "ХХХ.ХХХ.ХХХ.ХХХ";
Профиль.АдресСервераPOP3 = "ХХХ.ХХХ.ХХХ.ХХХ";
Профиль.Пользователь = "ЛогинОтправителя";
Профиль.Пароль = "ПарольОтправителя";
Профиль.ПортSMTP = ХХ;
Профиль.ПортPOP3 = ХХХ;
Профиль.ВремяОжидания = ХХ;

Возврат Профиль;

КонецФункции


Помимо этого используется функция МодульРегламентныхЗаданий .ЗаписатьСведеньяОбОшибке( ...)
Реализацию не публикую. Думаю что каждый должен реализовывать ее самостоятельно, в зависимости от принятой политики работы с логами.

piterpen323323
07.07.2012, 07:31
Попробуй использовать эту бесплатную программу
http://infostart.ru/public/124513/