Имя: Пароль:
1C
1С v8
Электронная почта
0 Garikus
 
08.04.14
11:17
Доброго времени суток
Имеется 1С 8.2 БП 2.0
Натолкните на мысль или поделитесь кусочком кода, как организовать отправку по электронке прямо из обработки, т.е. чтобы пользователь вбил адрес электронки и нажал отправить.
1 ДенисЧ
 
08.04.14
11:31
Функция ПолучитьСтандартныйПочтовыйПрофиль() Экспорт
    ИПП = Новый ИнтернетПочтовыйПрофиль;
    ИПП.ВремяОжидания = 120;
    ИПП.АдресСервераSMTP = МойПочтовыйСерве;
    ИПП.ПользовательSMTP = ПользовательСервера;
    Возврат ИПП;
КонецФункции

Процедура ОтправитьПисьмоАдресату(Тема, ТекстСообщения, Адресат = "", HTML =  Ложь) Экспорт
    ИПП                      = ПолучитьСтандартныйПочтовыйПрофиль();    
    Сообщение                = Новый ИнтернетПочтовоеСообщение;
    Сообщение.Важность       = ВажностьИнтернетПочтовогоСообщения.Наивысшая;
    Сообщение.ИмяОтправителя = "Робот писем";
    
    Если НЕ ПустаяСтрока(Адресат) Тогда
        Если Найти(Адресат, ";") > 0 Тогда
            мАдреса = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СокрЛП(Адресат), ";");
            Для каждого адр Из мАдреса Цикл
                Если Не ПустаяСтрока(адр) Тогда
                    Сообщение.Получатели.Добавить(адр);
                КонецЕсли;
            КонецЦикла;
        Иначе
            Сообщение.Получатели.Добавить(Адресат);
        КонецЕсли;
    Иначе
        Сообщение.Получатели.Добавить(глАдерсПоУмолчанию);
    КонецЕсли;
    Сообщение.Отправитель.ОтображаемоеИмя = "Робот писем";
    
    Сообщение.Тема = Тема;
    Если HTML Тогда
        Сообщение.Тексты.Добавить(ТекстСообщения, ТипТекстаПочтовогоСообщения.HTML);
    Иначе
        Сообщение.Тексты.Добавить(ТекстСообщения);
    КонецЕсли;
    Попытка
        ИП = Новый ИнтернетПочта;
        ИП.Подключиться(ИПП);
        ИП.Послать(Сообщение);
        ИП.Отключиться();
    Исключение
        Сообщить("Почта: отправка сообщения адресату: " + ОписаниеОшибки());
    КонецПопытки;
КонецПроцедуры
2 Garikus
 
08.04.14
11:34
Пасибо громадное) уже сам разобрался, немного про проще)

Профиль = новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераSMTP = "smtp.yandex.ru";
    Профиль.ПользовательSMTP = "@yandex.ru";
    Профиль.ПарольSMTP = "11"; //
    ПРофиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
    
    Сообщение = Новый ИнтернетПочтовоеСообщение;
    Сообщение.Отправитель = "@yandex.ru";
    Сообщение.Тема = "Тест";
    Сообщение.Получатели.Добавить("@mail.ru");
    Сообщение.Тексты.Добавить("Тест");
    //Сообщение.Вложения.Добавить(ИмяВременногоZiPфайла);
    
    Почта = Новый ИнтернетПочта;
    Попытка
        Состояние("Отправка почтового сообщения...");
        Почта.Подключиться(Профиль);
        Почта.Послать(Сообщение);
        Предупреждение("Сообщения успешно отправлены!");
    Исключение
        Сообщить("Ошибка соединения с сервером.",СтатусСообщения.ОченьВажное);
        Сообщить(""+ОписаниеОшибки());
    КонецПопытки;
3 Garikus
 
08.04.14
12:23
Еще подскажите пытаюсь присоединить вложение Сообщение.Вложения.Добавить(ИмяВременногоZiPфайла);
получаю ошибку {Форма.Отчет.Форма(605)}: Ошибка при вызове метода контекста (Добавить)
    Сообщение.Вложения.Добавить(ИмяФайлаzip);
по причине:
Несоответствие типов (параметр номер '1')

куда копать?
4 Wobland
 
08.04.14
12:30
в тип передаваемого параметра
5 Garikus
 
08.04.14
13:31
Если кому понадобиться, суть проблемы
Сообщение.Вложения.Добавить(Новый ДвоичныеДанные(ИмяФайлаzip),"имяФайла");
6 oleg_km
 
08.04.14
16:25
(5) Будете и дальше пересказывать синтаксис-помощник?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан