Имя: Пароль:
1C
1С v8
Электронная почта и 1С - Миф или реальность?!
0 efoi
 
17.09.13
14:00
Доброго времени суток, есть необходимость отправлять эл. письма через 1с. Стал разбираться с этим вопросом, настраивал учетные записи и так, и эдак, в разных конфигурациях, с разными почтовыми серверами(общедоступными типа майл или гугл). Однако результата это не дало, тогда решил сам написать обработку, при указании параметров подключения - та же борода. Так вот возникает вопрос, а работает ли 1с с почтой? Кто работал с этим и у кого получалось, поделитесь опытом или кодом.

З.Ы. Знаю, что есть множество публикаций на эту тему, ничего полезного в них не нашел, хотя и перепробовал все советы.
1 eklmn
 
гуру
17.09.13
14:01
неудачник
2 Чайник Рассела
 
17.09.13
14:01
SSL работает только в 8.3, все остальное работает без проблем.
3 IШаман
 
17.09.13
14:01
(0) Работает. пример кода в синтакс помошнике есть.
4 cw014
 
17.09.13
14:01
Работал и получалось. Главное что бы руки росли из правильного места
5 Чайник Рассела
 
17.09.13
14:01
(1) поддерживаю.
6 Фокусник
 
17.09.13
14:02
(0) возможно firewall не пропускает
7 ДенисЧ
 
17.09.13
14:03
У нас куча конфигураций ежедневно шлёт отчёты о своей работе...
Проблем не вижу.
Единственное - у нас свой почтовик.
8 shuhard
 
17.09.13
14:04
(0)[Знаю, что есть множество публикаций на эту тему, ничего полезного в них не нашел, хотя и перепробовал все советы.]
почта в 1С не работает, ни у кого, ибо платформа сырая,
так начальству и доложи
9 IШаман
 
17.09.13
14:06
Кстати если речь идет про почтовый клиент в 1с, то он насколько помню не очень был.
10 efoi
 
17.09.13
14:07
(7) ну на собственный почтовый сервер я знаю что работает, а на общедоступные?
11 Масянька
 
17.09.13
14:08
А у меня в 7.7 прекрасно работает отправка счета на мыло (сама писала).
12 efoi
 
17.09.13
14:08
(4) может есть код, чтоб сравнить со своим и понять, что не так?
13 rikodroo
 
17.09.13
14:09
Шли через свой почтарь. Т.е. ваш почтовик будет smtp релеем. Примеров написания подобныго функционала море, причем как с использованием всяких учетных записей 1с, так и без них.
14 killitch
 
17.09.13
14:09
+(2) на 82 SSL не работает или тунелирвание или почту на сервере без шифрования. И да, типовые настроены работают, свои написаны и работают. СП достаточно + подглядеть типовые.
15 rikodroo
 
17.09.13
14:10
(12) дай свой код?
16 efoi
 
17.09.13
14:10
(2) т.е. в 8.2 можно и не париться с почтовиками которые используют SSL?
17 Лодырь
 
17.09.13
14:12
Угу, примеров море. Их мелочей рекомендую проверять доступность серверов почтовый перед отсылкой и реализовать возможность отложенной отсылки сообщения если чтото идет не так. А то есть пример, когда отсылка уведомления в момент проведения счетов парализовала работу продаванов из-за неработающего почтового сервака.
18 rikodroo
 
17.09.13
14:12
(0) качни с инета книжку Михайлова "1с предприятие 7.7/8.0 системное программирование" - там найдеш все что нужно.
19 rikodroo
 
17.09.13
14:13
Еще как вариант можно dll всякие юзать из 1с.
20 efoi
 
17.09.13
14:16
(12) Код
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Почта = Новый ИнтернетПочта;
    Попытка
        Почта.Подключиться(ПолучитьПрофиль());
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    Сообщение = Новый ИнтернетПочтовоеСообщение;
    
    Сообщение.Вложения.Добавить(Новый ДвоичныеДанные("C:\vcredist.bmp"),"vcredist.bmp");
    
    Сообщение.Отправитель = "[email protected]";
    Сообщение.ИмяОтправителя = "Вася";
    ПочтовыеАдреса = Сообщение.Получатели;
    ПочтовыйАдрес = ПочтовыеАдреса.Добавить();
    ПочтовыйАдрес.Адрес = "[email protected]";
    Сообщение.Тема ="Тема сообщения";
    
    ИнтернетТекстПочтовогоСообщения = Сообщение.Тексты.Добавить();
    ИнтернетТекстПочтовогоСообщения.Текст = "Текст сообщения";
    ИнтернетТекстПочтовогоСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
    
    Попытка
        // Пытаемся послать письмо
        Почта.Послать(Сообщение);
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    // отключение
    Почта.Отключиться();
КонецПроцедуры

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

Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
// SMTP сервер
Профиль.АдресСервераSMTP = "smtp.mail.com";

// Порт SMTP сервера
Профиль.ПортSMTP = 25;

// POP3 сервер
Профиль.АдресСервераPOP3 = "pop.mail.ru";

//  Порт POP3 сервера
Профиль.ПортPOP3 = 110;

//  Пароль к почтовому ящику
Профиль.Пароль = "*****";

// Пароль пользователя для SMTP сервера
Профиль.ПарольSMTP = "*****";

//  Логин пользователя
Профиль.Пользователь = "[email protected]";

//  Логин пользователя для SMTP сервера
Профиль.ПользовательSMTP = "1234";

//  Время ожидания выполнения операции в секундах

Профиль.ВремяОжидания = 50;
Возврат Профиль;

КонецФункции
21 efoi
 
17.09.13
14:17
При получении SMTP пишет ошибку, но я не прошу поправлять мой код. Прошу рассказать о своем опыте.
22 rikodroo
 
17.09.13
14:18
(20) когда ручками телнетом через свой релей шлеш - нормально уходит? Если да, то и 1с пусть шлет через релей. В противном случае - смотри настройки релея.
23 rikodroo
 
17.09.13
14:19
на своем релее для 1с ssl и прочее вообще отключи, тебе же только отправлять письма.
24 alkov
 
17.09.13
14:19
(21) СпособSMTPАутентификации пробовали ПоУмолчанию ставить?
25 efoi
 
17.09.13
14:21
(23) Что такое ререй? :)
(24) Пробовал
26 efoi
 
17.09.13
14:23
(23) релей*
27 rikodroo
 
17.09.13
14:26
(25) ну это сервер, который отсылает почту на ружу. В локалке же у вас есть сервер почтовый, вот шли из 1с почту через него, т.е. в качестве smtp указывай именно его (ну понятно, что если он авторизацию просит, то под майл.ру логином он тебя завернет) - это будет релей. Если он не пересылает - поговори с админом, пусть наладит.
28 efoi
 
17.09.13
14:28
(27) нет у меня почтового сервера, потому и пытаюсь к гуглу или майлу подключиться, а на них SSL не отключить
29 Sabbath
 
17.09.13
14:29
(0) уже не помню ничего, давно было, но помню, что работало
30 rikodroo
 
17.09.13
14:29
Тогда либо поставь его, либо в вроде было и про ssl и про почту и все остальное(18), либо ищи внешние компоненты соответствующие.
31 efoi
 
17.09.13
14:32
(30) спс
32 mih_io
 
17.09.13
14:32
(28) для SSL и 1с надо настраивать туннелирование. Юзай эту программу stunnel

У меня в её конфиге такие настройки
client = yes
service=gmail
output = stunnel-log.txt
debug = 0
[SMTP Gmail ]
accept = 127.0.0.1:25
connect = smtp.gmail.com:465
[POP3 Gmail ]
accept = 127.0.0.1:110
connect = pop.gmail.com:995

Соответственно в 1с надо писать сервер pop3 и SMTP 127.0.0.1:110 и 127.0.0.1:25
33 efoi
 
17.09.13
14:42
Странно на Яндексе все норм работает, переделал настройки так и все ок, отправляется....


Процедура КнопкаВыполнитьНажатие(Кнопка)
    Почта = Новый ИнтернетПочта;
    Попытка
        Почта.Подключиться(ПолучитьПрофиль());
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;

    Сообщение = Новый ИнтернетПочтовоеСообщение;
    //Сообщение.Вложения.Добавить(Имя);
    Сообщение.Отправитель = "[email protected]";
    Сообщение.ИмяОтправителя = "Офис на склад";
    ПочтовыеАдреса = Сообщение.Получатели;
    ПочтовыйАдрес = ПочтовыеАдреса.Добавить();
    ПочтовыйАдрес.Адрес = "[email protected]";
    Сообщение.Тема ="Полученные документы на складе за: " + Строка(ТекущаяДата());

    ИнтернетТекстПочтовогоСообщения = Сообщение.Тексты.Добавить();
    ИнтернетТекстПочтовогоСообщения.Текст = "Полученные документы на складе за: " + Строка(ТекущаяДата());
    ИнтернетТекстПочтовогоСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;

    Попытка
    // Пытаемся послать письмо
        Почта.Послать(Сообщение);
        Сообщить("Файл отправлен");
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    // отключение
    Почта.Отключиться();  
    
КонецПроцедуры


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

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

// SMTP сервер
Профиль.АдресСервераSMTP = "smtp.yandex.ru";
// Порт SMTP сервера
Профиль.ПортSMTP = 587;
// СпособSMTPАутентификации
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
// POP3 сервер
Профиль.АдресСервераPOP3 = "pop.yandex.ru";
// Порт POP3 сервера
Профиль.ПортPOP3 = 110;
// Пароль к почтовому ящику
Профиль.Пароль = "******";
// Пароль пользователя для SMTP сервера
Профиль.ПарольSMTP = "******";
// Логин пользователя
Профиль.Пользователь = "[email protected]";
// Логин пользователя для SMTP сервера
Профиль.ПользовательSMTP = "[email protected]";
// Время ожидания выполнения операции в секундах
Профиль.ВремяОжидания = 50;
Возврат Профиль;

КонецФункции
34 efoi
 
17.09.13
14:44
без внешних компонентов и тунелирования. Видимо они SSL не используют.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший