Автоматизация бизнеса

Установка, настройка, внедрение и сопровождение любых конфигураций на платформе 1С:Предприятие. 

e-mail: info@programmist1c.ru

Минимальный объем работ от 50 000 рублей
  •   Удаленный админ
  •   Карта сайта
  •   Контакты


  • Поиск
     

    v8: Функция по отправке извещений по e-mail из 1С (Рыба)

    Не изобретаю велосипед, не открываю америку, просто показываю шаблон функции для отправки сообщения из 1С, например для информирования администраторов об завершении плановых работ в 1С или для извещения пользователей о некоторых этапах работы
    Автор статьи: Гений 1С | Редакторы:
    Последняя редакция №2 от 14.08.06 |


    Ключевые слова: e-mail,почта,функция


    В структуре Умолчания нужно указать параметры SMTP-сервера, которые будут использоваться по умолчанию.

    Буду благодарен, если кто-нибудь разовьет функцию, чтобы передавались все параметры. ;-)

    Вот собственно функция:

    //Функция для отправки извещений от 1С через e-mail. fixin 20060814
    //Параметры структуры
    //Получатели - e-mail получателя в виде строки или массив таких строк
    //Текст - текст сообщения
    //ТипТекста - тип теста, тип  ТипТекстаПочтовогоСообщения
    //Вложения - имя файла вложения или массив имен
    //Отправитель - e-mail отправителя
    //ИмяОтправителя - имя отправителя (любой текст)
    //АдресSMTPСервера - адрес SMTP сервера
    //ПортSMTP - порт SMTP сервера (число)
    //ПарольSMTP - пароль SMTP сервера 
    //АутентификацияSMTP - булево (истинга) 
    //Возврат:
    //истина - ошибок нет, ложь - есть ошибки
    //В атрибуте "ОписаниеОшибки" - описание ошибки.
    
    
    Функция обОтправитьИзвещениеПочтой(П) Экспорт
        Перем Умолчания;
        Перем АдресSMTPСервера, ПортSMTP, ПользовательSMTP, ПарольSMTP, АутентификацияSMTP;
        Перем ИнтернетПочта, Профиль, Сообщение;
        Перем Получатели, Тема, Текст;
        Перем ИмяОтправителя,Отправитель,Вложения, ОписаниеОшибки;
        
        //Значения по умолчанию
        Умолчания=Новый Структура(
            "АдресSMTPСервера,ПортSMTP,ПользовательSMTP,ПарольSMTP,АутентификацияSMTP",
            "smtp.ru", 25, "1CRobot", "password", истина);
            
        //В П не вставляются параметры подключения из соображений безопасности.
        Если НЕ П.Свойство("АдресSMTPСервера", АдресSMTPСервера) Тогда
                АдресSMTPСервера=Умолчания.АдресSMTPСервера;
        КонецЕсли;
        Если НЕ П.Свойство("ПортSMTP", ПортSMTP) Тогда
                ПортSMTP=Умолчания.ПортSMTP;
        КонецЕсли;
        Если НЕ П.Свойство("ПользовательSMTP", ПользовательSMTP) Тогда
                ПользовательSMTP=Умолчания.ПользовательSMTP;
        КонецЕсли;
        Если НЕ П.Свойство("ПарольSMTP", ПарольSMTP) Тогда
                ПарольSMTP=Умолчания.ПарольSMTP;
        КонецЕсли;
        Если НЕ П.Свойство("АутентификацияSMTP", АутентификацияSMTP) Тогда
                АутентификацияSMTP=Умолчания.АутентификацияSMTP;
        КонецЕсли;
        
        ИнтернетПочта = Новый ИнтернетПочта;
        Профиль = Новый ИнтернетПочтовыйПрофиль;
        Профиль.АдресСервераSMTP = АдресSMTPСервера;
        Профиль.ПортSMTP = ПортSMTP;
        Если АутентификацияSMTP Тогда
            Профиль.ПользовательSMTP = ПользовательSMTP;
            Профиль.ПарольSMTP = ПарольSMTP;
        КонецЕсли; 
        
        Если НЕ П.Свойство("Получатели") Тогда
            П.Вставить("Ошибка", истина);
            П.Вставить("ОписаниеОшибки", "Не указан получатель");
            Возврат ложь; 
        КонецЕсли;
        Если ТипЗнч(П.Получатели)=Тип("Массив") Тогда
            Получатели=П.Получатели;
        Иначе
            Получатели=Новый Массив();
            Получатели.Добавить(П.Получатели);
        КонецЕсли;
        
        Если П.Свойство("Тема") Тогда
            Тема=П.Тема;
        Иначе
            Тема="Без темы";
        КонецЕсли;
        
        Если П.Свойство("Текст") Тогда
            Текст=П.Текст;
        Иначе
            Текст=Неопределено;
        КонецЕсли;
        
        Если П.Свойство("ТипТекста") Тогда
            ТипТекста=П.ТипТекста;
        Иначе
            ТипТекста=ТипТекстаПочтовогоСообщения.ПростойТекст;
        КонецЕсли;
        
        Если П.Свойство("ИмяОтправителя") Тогда
            ИмяОтправителя=П.ИмяОтправителя;
        Иначе
            ИмяОтправителя="Робот";
        КонецЕсли;
    
        Если П.Свойство("Отправитель") Тогда
            Отправитель=П.Отправитель;
        Иначе
            Отправитель=ПользовательSMTP+"@"+АдресSMTPСервера;
        КонецЕсли;
        
        Если НЕ П.Свойство("Вложения") Тогда
            Вложения=Новый Массив();
        Иначе
            Если ТипЗнч(П.Вложения)=Тип("Массив") Тогда
                Вложения=П.Вложения;
            Иначе
                Вложения=Новый Массив();
                Вложения.Добавить(П.Вложения);
            КонецЕсли;
        КонецЕсли;
    
    
        Попытка
            ИнтернетПочта.Подключиться(Профиль);
            Сообщение = Новый ИнтернетПочтовоеСообщение;
            Сообщение.Тема = Тема;        
            Для Каждого Получатель Из Получатели Цикл
                Сообщение.Получатели.Добавить(Получатель);
            КонецЦикла;
            Сообщение.ИмяОтправителя = ИмяОтправителя;
            Сообщение.Отправитель = Отправитель;                
            Для Каждого Вложение Из Вложения Цикл
                Сообщение.Вложения.Добавить(Вложение);
            КонецЦикла;
            Если Текст<>Неопределено Тогда
                Сообщение.Тексты.Добавить(Текст, ТипТекста);
            КонецЕсли;
            ИнтернетПочта.Послать(Сообщение);
            ИнтернетПочта.Отключиться();
            П.Вставить("Ошибка", ложь);
            Возврат истина; 
        Исключение
            ОписаниеОшибки=ОписаниеОшибки();
            П.Вставить("Ошибка", истина);
            П.Вставить("ОписаниеОшибки", ОписаниеОшибки);
            Возврат ложь; 
        КонецПопытки;
    КонецФункции
    21.02.18 | 10:31


    30.11.16 | 20:25


    28.11.16 | 09:22


    26.11.16 | 08:19


    22.11.16 | 20:17


    19.11.16 | 10:14


    18.11.16 | 20:09




    Внедрение 1С Автоматизация 1С Доработка 1С Сопровождение 1С Обслуживание 1С Программирование 1С 8 Hастройка 1С Карта сайта Контакты