Произошла ошибка при работе с SMTP. Код ошибки: 27 (Ошибка установки защищенного SSL/TLS соединения. После обновления на платформу 8.3.23 и далее 8.3.24. При рассылке сообщений на электронную почту появляется ошибка:
Произошла ошибка при работе с SMTP. Код ошибки: 27 (Ошибка установки защищенного SSL/TLS соединения.)"
Произошла ошибка при работе с IMAP ...
Это ошибка1С https://bugboard.v8.1c.ru/error/000142347
Описание:
При использовании почтового сервера imap .gmail.ru происходит ошибка
Произошла ошибка соединения с сервером при работе с IMAP . Код ошибки: 43 Ошибка установки защищенного SSL/TLS соединения
Способ обхода:
В conf.cfg добавить опцию IgnoreInternetMailServerCertificateVerificationList:
Код Batch File (DOS, CMD, BAT) IgnoreInternetMailServerCertificateVerificationList=imap .gmail.com;smtp.gmail.com
В баг репорте ошибка описана для почты gmail, но у нас свой почтовый сервер и ошибка та же самая, и попутно было обнаружено, что и с mail.ru такая же есть ошибка, а вот Yandex.ru ошибку не дает.
Файл conf.cfg находится в папке C:\Program Files\1cv8\conf (для 64 платформы).
Сделайте запись по примеру выше. только замените gmail.com на свой сервер
Категория:
Работа с Интернет, Почтой (Mail), FTP Отправка почты через Mail.ru с использованием технологии шифрования SSL Часто клиенты просят сделать автоматическую отправку счетов или отчетов на электронную почту, ниже приведены примеры кода для разных версий 1С:
Код 1C v 8.3
Функция ПолучитьПрофильПочты()
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль. АдресСервераSMTP = "smtp.mail.ru" ;
Профиль. АдресСервераPOP3 = "pop.mail.ru" ;
Профиль. ПортPOP3 = 995 ;
Профиль. ПортSMTP = 465 ;
Профиль. Пользователь = "s_v@inbox.ru" ;
Профиль. Пароль = "8mFTnDjC4KftTzh" ;
Профиль. ПользовательSMTP = "s_v@inbox.ru" ;
Профиль. ПарольSMTP = "8mFTnDjC4KftTzh" ;
Профиль. АутентификацияSMTP = СпособSMTPАутентификации. Login;
Профиль. ИспользоватьSSLPOP3 = Истина ;
Профиль. ИспользоватьSSLSMTP = Истина ;
Возврат Профиль;
КонецФункции
Процедура ОсновныеДействияФормыСчетОтправитьНаПочту(Кнопка)
Если ЗначениеЗаполнено( Ответственный. ПочтаДляОтправкиСчета) Тогда
Почта = Новый ИнтернетПочта;
Письмо = Новый ИнтернетПочтовоеСообщение;
Текст = Письмо. Тексты. Добавить( "В приложении счет" ) ;
Текст. ТипТекста = ТипТекстаПочтовогоСообщения. ПростойТекст;
Письмо. Тема = Строка( Ссылка) ;
Письмо. Отправитель = "s_vmeste@inbox.ru" ;
Письмо. ИмяОтправителя = "1С" ;
Письмо. Получатели. Добавить( Ответственный. ПочтаДляОтправкиСчета) ;
врфайл= ПолучитьИмяВременногоФайла( "pdf" ) ;
текТабдок= СчетФаксимилеТовары( ) ;
текТабдок. Записать( врфайл, ТипФайлаТабличногоДокумента. PDF) ;
Письмо. Вложения. Добавить( врфайл) ;
Попытка
Почта. Подключиться( ПолучитьПрофильПочты( ) ) ; Почта. Послать( Письмо) ; Предупреждение( "Письмо отправлено" , 3 ) ;
Исключение
Сообщить( ОписаниеОшибки( ) ) ;
КонецПопытки ;
Почта. Отключиться( ) ;
Письмо. Вложения. Очистить( ) ;
Иначе
Предупреждение( "В настройках ответственного не указана почта для отправки счета" ) ;
КонецЕсли ;
КонецПроцедуры
С версиями 8.2 сложнее, так как все почтовые сервисы перешли на SSL, а медоты:
Код 1C v 8.3 Профиль. ИспользоватьSSLPOP3 = Истина ;
Профиль. ИспользоватьSSLSMTP = Истина ;
появились только в 8.3.1 , остается использовать stunnel или CDO :
Код 1C v 8.2 УП
Функция ПослатьПоПочте(Знач Адрессаты, ТемаСообщения = "" ,ТекстСообщения = "" ,СписокВложений = "" ) Экспорт
Оправитель = "s_v@inbox.ru" ;
Пароль = "8mFTnDjC4KftTzh" ;
loConfig = Новый COMОбъект( "CDO.Configuration" ) ;
loCdoMessage = Новый COMОбъект( "CDO.Message" ) ;
loCdoMessage. Configuration = loConfig;
loCdoMessage. From = Строка( "1С <" + Оправитель+ ">" ) ;
loCdoMessage. To = Адрессаты;
loCdoMessage. Subject = ? ( ТемаСообщения= "" , "1С" , ТемаСообщения) ;
loCdoMessage. TextBody = "1C" ;
HTMLBody = "<html>
|<head>
|<meta content="" text/html; charset=Windows-1251"" http-equiv="" content-type"" >
|<title> Тестовое сообщение </title>
|</head>
|<body>
|<h4>" + ТекстСообщения + "</h4>
|<p></p>
|</body>
|</html>" ;
loCdoMessage. HTMLBody = HTMLBody;
Если ТипЗнч( СписокВложений) = Тип( "Строка" ) И Не СписокВложений = "" Тогда
Попытка
loCdoMessage. AddAttachment( СписокВложений) ;
Исключение
КонецПопытки ;
ИначеЕсли ТипЗнч( СписокВложений) = Тип( "СписокЗначений" ) Тогда
Для каждого ПутьКВложению Из СписокВложений Цикл
Попытка
loCdoMessage. AddAttachment( ПутьКВложению. Значение) ;
Исключение
КонецПопытки ;
КонецЦикла ;
КонецЕсли ;
loConfig. Fields. Item( "http://schemas.microsoft.com/cdo/configuration/sendusing" ) . Value = 2 ;
loConfig. Fields. Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ) . Value = "smtp.mail.ru" ;
loConfig. Fields. Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ) . Value = "465" ;
loConfig. Fields. Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" ) . Value = 1 ;
loConfig. Fields. Item( "http://schemas.microsoft.com/cdo/configuration/sendusername" ) . Value = Оправитель;
loConfig. Fields. Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword" ) . Value = Пароль;
loConfig. Fields. Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ) . Value = 1 ;
loConfig. Fields. Item( "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout" ) . Value = 60 ;
loConfig. Fields. Update( ) ;
Попытка
loCdoMessage. Send( ) ;
Исключение
Сообщить( ОписаниеОшибки( ) ) ;
Возврат Ложь ;
КонецПопытки ;
КонецФункции
Процедура ОсновныеДействияФормыСчетТовары(Кнопка)
Если ЗначениеЗаполнено( Менеджер. ПочтаДляОтправкиСчета) Тогда
врфайл= ПолучитьИмяВременногоФайла( "xls" ) ;
текТабдок= СчетФаксимилеТовары( ) ;
текТабдок. Записать( врфайл, ТипФайлаТабличногоДокумента. XLS) ;
ПослатьПоПочте( Менеджер. ПочтаДляОтправкиСчета, Строка( Ссылка) , "Счет в приложении" , врфайл) ;
Предупреждение( "Письмо отправлено" , 3 ) ;
Иначе
Предупреждение( "В настройках ответственного не указана почта для отправки счета" ) ;
КонецЕсли ;
КонецПроцедуры
Через stunnel в 1С код, менять не нужно, только установить программу и изменить настройки подключения к почтовому ящику
Скачиваем stunnel c официального сайта (stunnel.org) и запускаем инсталятор, жмем yes при установке спросит страну и ваши данные, это нужно для создания сертификата на вашем компьютере.
После запуска в трее появится его иконка, правой клавишей и редактировать edit configuration
В блокноте откроется файл настроек, там будет пример для gmail дополняем или заменяем его следующим:
Код Batch File (DOS, CMD, BAT) [gmail-pop3]
client = yes
accept = 127.0.0.1:10110
connect = pop.gmail.com:995
[gmail-imap ]
client = yes
accept = 127.0.0.1:10143
connect = imap .gmail.com:993
[gmail-smtp]
client = yes
accept = 127.0.0.1:10025
connect = smtp.gmail.com:465
[yandex-pop3]
client = yes
accept = 127.0.0.1:20110
connect = pop.yandex.ru:995
[yandex-imap ]
client = yes
accept = 127.0.0.1:20143
connect = imap .yandex.ru:993
[yandex-smtp]
client = yes
accept = 127.0.0.1:20025
connect = smtp.yandex.ru:465
[mail-pop3]
client = yes
accept = 127.0.0.1:30110
connect = pop.mail.ru:995
[mail-imap ]
client = yes
accept = 127.0.0.1:30143
connect = imap .mail.ru:993
[mail-smtp]
client = yes
accept = 127.0.0.1:30025
connect = smtp.mail.ru:465
Сохраняем файл и делаем Reload configuration
В настройка 1С меняем порты для работы
gmail
pop3 10110
imap 10143
smtp 10025
yandex
pop3 20110
imap 20143
smtp 20025
mail
pop3 30110
imap 30143
smtp 30025
Если в коде прописано, то:
Код 1C v 8.х Функция ПолучитьПрофильПочты()
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль. АдресСервераSMTP = "localhost" ;
Профиль. АдресСервераPOP3 = "localhost" ;
Профиль. ПортPOP3 = 30110 ;
Профиль. ПортSMTP = 30025 ;
Профиль. Пользователь = "s_v@inbox.ru" ;
Профиль. Пароль = "8mFTnDjC4KftTzh" ;
Профиль. ПользовательSMTP = "s_v@inbox.ru" ;
Профиль. ПарольSMTP = "8mFTnDjC4KftTzh" ;
Профиль. АутентификацияSMTP = СпособSMTPАутентификации. Login;
Возврат Профиль;
КонецФункции
Все, можно отправлять и проверять работу через консоль Show log window в меню
P.S. Почтовый ящик в примерах не рабочий, как пример
Категория:
Работа с Интернет, Почтой (Mail), FTP Отправка и получение почты с использованием технологии шифрования SSL Почти все почтовые сервисы перешли на использование SSL и для получения почты нужно использовать IMAP , можно конечно и POP, но это уже прошлый век )
Пример получения почты с mail.ru по IMAP используя SSL:
Код 1C v 8.3 Функция ПолучитьНовыеПисьма() Экспорт
Почта = Новый ИнтернетПочта;
ИспользоватьIMAP =Истина; ПочтовыйЯщик = "";
Профиль = ПолучитьПрофиль();
Попытка
Если ИспользоватьIMAP Тогда
Почта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP );
Если ПочтовыйЯщик = "" Тогда
ПочтовыйЯщик = "INBOX";
КонецЕсли;
Почта.ТекущийПочтовыйЯщик = ПочтовыйЯщик;
Иначе;
Почта.Подключиться(Профиль, ПротоколИнтернетПочты.POP3);
КонецЕсли;
Исключение
Сообщить(НСтр("ru = 'Ошибка при подключении к почтовому серверу. Проверьте настройки.'"));
Сообщить(ОписаниеОшибки());
Возврат 0;
КонецПопытки;
ЗагруженныеПисьма = ПолучитьИдентификаторыЗагруженныхПисем();
ИдентификаторыНовыхПисем = Почта.ПолучитьИдентификаторы(ЗагруженныеПисьма);
Если ИдентификаторыНовыхПисем.Количество() = 0 Тогда
//Новых нет
Иначе
//Получаем новые письма
Письма = Почта.Выбрать(Ложь, ИдентификаторыНовыхПисем,Истина);
Для каждого Письмо Из Письма Цикл
Если Найти(Письмо.Тема,"siteabc.ru")>0 Тогда //Если это наше письмо то грузим его
ПисьмоОбъект = Справочники.ВходящиеПисьма.СоздатьЭлемент();
ПисьмоОбъект.Идентификатор = Письмо.Идентификатор[0];
ПисьмоОбъект.Наименование = Письмо.Тема;
ПисьмоОбъект.Дата = Письмо.ДатаОтправления;
ПисьмоОбъект.Отправитель = Письмо.Отправитель;
Если ИспользоватьIMAP Тогда
ПисьмоОбъект.ПочтовыйЯщик = "IMAP /" + ПочтовыйЯщик;
Иначе
ПисьмоОбъект.ПочтовыйЯщик = "POP3";
КонецЕсли;
Для каждого Элемент Из Письмо.Тексты Цикл
Если Элемент.ТипТекста = ТипТекстаПочтовогоСообщения.HTML Тогда
ПисьмоОбъект.ВидСодержимого = "HTML";
Текст = Элемент.Текст;
Если Найти(Текст, "<HTML>") = 0 Тогда
Текст = "<HTML><BODY>" + Текст + "</BODY></HTML>";
КонецЕсли;
//Вложения = Новый Массив;
//// обрабатываем вложения, что бы правильно сформировать HTML
//Для каждого Вложение Из Письмо.Вложения Цикл
// Ид = "cid:" + Вложение.Идентификатор;
// Если Найти(Текст, Ид) <> 0 Тогда
// Вложения.Добавить(Вложение);
// КонецЕсли;
//КонецЦикла;
Прервать;
ИначеЕсли Элемент.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст Тогда
ПисьмоОбъект.ВидСодержимого ="Текст";
Текст = Элемент.Текст;
КонецЕсли;
КонецЦикла;
ПисьмоОбъект.Текст = Текст;
ПисьмоОбъект.Записать();
КонецЕсли;
КонецЦикла;
КонецЕсли;
Почта.Отключиться();
Функция ПолучитьПрофиль(ИмяОтправителя = "", ИспользоватьIMAP = Ложь) Экспорт
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная;
Профиль.POP3ПередSMTP=Ложь;
Профиль.АдресСервераIMAP = "imap .mail.ru";
Профиль.ПортIMAP = 993;
Профиль.ИспользоватьSSLIMAP = Истина;
Профиль.ПользовательIMAP ="siteabcz@mail.ru";
Профиль.ПарольIMAP = "9Ljkuf";
Профиль.ТолькоЗащищеннаяАутентификацияIMAP = Ложь;
Возврат Профиль;
КонецФункции
Функция ПолучитьИдентификаторыЗагруженныхПисем() Экспорт
Идентификаторы = Новый Массив();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Идентификатор ИЗ Справочник.ВходящиеПисьма";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Идентификаторы.Добавить(Выборка.Идентификатор);
КонецЦикла;
Возврат Идентификаторы;
КонецФункции
/// ЕЩЕ примеры настройки профиля
Функция ПолучитьПрофиль(ИмяОтправителя = "", ИспользоватьIMAP = Ложь) Экспорт
//Профиль = Новый ИнтернетПочтовыйПрофиль;
//Профиль.АдресСервераSMTP = Выборка.АдресSMTPСервера;
//Профиль.ПортSMTP = Выборка.ПортSMTP;
//Профиль.ИспользоватьSSLSMTP = Выборка.SSLSMTP;
//Профиль.ПарольSMTP = Выборка.ПарольSMTP;
//Профиль.ПользовательSMTP = Выборка.ПользовательSMTP;
//Профиль.ТолькоЗащищеннаяАутентификацияSMTP = Ложь;
//
//Профиль.АдресСервераIMAP = Выборка.АдресIMAP Сервера;
//Профиль.ПортIMAP = Выборка.ПортIMAP ;
//Профиль.ИспользоватьSSLIMAP = Выборка.SSLIMAP ;
//Профиль.ПользовательIMAP = Выборка.ПользовательIMAP ;
//Профиль.ПарольIMAP = Выборка.ПарольIMAP ;
//Профиль.ТолькоЗащищеннаяАутентификацияIMAP = Ложь;
//
//Профиль.АдресСервераPOP3 = Выборка.АдресPOP3Сервера;
//Профиль.ПортPOP3 = Выборка.ПортPOP3;
//Профиль.ИспользоватьSSLPOP3 = Выборка.SSLPOP3;
//Профиль.Пароль = Выборка.ПарольPOP3;
//Профиль.Пользователь = Выборка.ПользовательPOP3;
//Профиль.ТолькоЗащищеннаяАутентификацияPOP3 = Ложь;
//
//Профиль.ВремяОжидания = Выборка.ТаймаутИнтернетПочты;
//
//ИмяОтправителя = Выборка.ИмяОтправителяПочтовогоСообщения;
//ИспользоватьIMAP = Выборка.ИспользоватьIMAP ;
//
Профиль = Новый ИнтернетПочтовыйПрофиль;
//Профиль.АдресСервераSMTP = "smtp.mail.ru";
//Профиль.ПортSMTP = 465;
//Профиль.ИспользоватьSSLSMTP = Истина;
//Профиль.ПарольSMTP ="9LEY";
//Профиль.ПользовательSMTP = "siteabcz@mail.ru";
//Профиль.ТолькоЗащищеннаяАутентификацияSMTP = Истина;
//Профиль.Пользователь = "siteabcz@mail.ru";
//Профиль.Пароль = "siteabcz";
//Профиль.АдресСервераPOP3 = "pop.mail.ru";
//Профиль.ПортPOP3 = 995;
//Профиль.ИспользоватьSSLPOP3 = Истина;
Профиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная;
Профиль.POP3ПередSMTP=Ложь;
Профиль.АдресСервераIMAP = "imap .mail.ru";
Профиль.ПортIMAP = 993;
Профиль.ИспользоватьSSLIMAP = Истина;
Профиль.ПользовательIMAP ="siteabcz@mail.ru";
Профиль.ПарольIMAP = "siteabcz";
Профиль.ТолькоЗащищеннаяАутентификацияIMAP = Ложь;
Возврат Профиль;
КонецФункции
//ОБЩИЙ ПРИМЕР ОТПРАВКИ и ПОЛУЧЕНИЯ
Функция ОтправитьПисьмо(EmailОтправителя, ПарольОтправителя,
Порт, АдресСервера, EmailПолучателя,
ИмяПолучателя, ТекстСообщения,
ЗаголовокСообщения, МассивФайловыхПутей)
//ПОЧТОВЫЙ ПРОФИЛЬ
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.АдресСервераSMTP = АдресСервера;
Профиль.ПортSMTP = Порт;
Профиль.Пользователь = EmailОтправителя;
Профиль.Пароль = ПарольОтправителя;
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
Профиль.ПарольSMTP = ПарольОтправителя;
Профиль.ПользовательSMTP = EmailОтправителя;
//ПОЧТОВОЕ СООБЩЕНИЕ
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Отправитель = EmailОтправителя;
Сообщение.Тема = ЗаголовокСообщения;
Сообщение.Тексты.Добавить(ТекстСообщения, ТипТекстаПочтовогоСообщения.HTML);
Сообщение.Организация = "The company";
Адрес = Сообщение.Получатели.Добавить(EmailПолучателя);
Адрес.ОтображаемоеИмя = ИмяПолучателя;
Для каждого ПутьКФайлу Из МассивФайловыхПутей Цикл
Сообщение.Вложения.Добавить(ПутьКФайлу);
КонецЦикла;
// ПОЧТОВЫЙ СЕРВЕР
Почта = Новый ИнтернетПочта();
//Подключение к серверу
Попытка
Почта.Подключиться(Профиль);
Исключение
Сообщить("Ошибка при подключении к серверу: " + ОписаниеОшибки());
Возврат Ложь;
КонецПопытки;
//Отправка письма
Попытка
Почта.Послать(Сообщение);
Исключение
Почта.Отключиться();
Сообщить("Ошибка при отправке письма: " + ОписаниеОшибки());
Возврат Ложь;
КонецПопытки;
Почта.Отключиться();
Возврат Истина;
КонецФункции
Функция ПолучитьПисьма()
//ПОЧТОВЫЙ ПРОФИЛЬ
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.Пользователь = "xxx@xxxx.xx";
Профиль.Пароль = "xxxxxx";
Профиль.АдресСервераPOP3 = "pop3.mail.ru";
ПРофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная;
МассивПисем = Новый массив();
//ПОЛУЧЕНИЕ ПИСЕМ
Попытка
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
МассивПисем = Почта.Выбрать(Ложь);
Исключение
Сообщить("Ошибка получения почты " + ОписаниеОшибки());
КонецПопытки;
Возврат МассивПисем;
КонецФункции
Категория:
Работа с Интернет, Почтой (Mail), FTP Получение почты используя IMAP или POP3 В данном примере используется
IMAP и POP3
Для использования POP3 раскомментируйте строки и
Профиль.АутентификацияPOP3 = Истина;
Код 1C v 8.2 УП &НаКлиенте
Процедура ПолучитьСообщений(Команда)
ПутьСохранения = "D:\temp";
Профиль = Новый ИнтернетПочтовыйПрофиль;
//Профиль.АдресСервераPOP3 = "re05.hc.ru";
//Профиль.ПортPOP3 = "995";
//Профиль.Пользователь = "robot@site.ru";
//Профиль.Пароль = "11223344";
Профиль.АутентификацияPOP3 = Ложь;
Профиль.АутентификацияSMTP = Ложь;
// IMAP
Профиль.ИспользоватьSSLIMAP = Истина;
Профиль.АдресСервераIMAP = "re05.hc.ru";
Профиль.ПортIMAP = "993";
Профиль.ПользовательIMAP = "robot@site.ru";
Профиль.ПарольIMAP = "11223344";
Профиль.ТолькоЗащищеннаяАутентификацияIMAP =Ложь;
Почта = Новый ИнтернетПочта;
Сообщ = Новый СообщениеПользователю();
Попытка
Почта.Подключиться(Профиль, ПротоколИнтернетПочты.IMAP ); //ПротоколИнтернетПочты.POP3
// Получаем все сообщения из почтового ящика
МассивСообщений = Новый Массив;
МассивСообщений = Почта.Выбрать(Ложь);
Исключение
// Ошибка при подключении к серверу или при приеме сообщения обмена
Сообщ.Текст = " - Ошибка при подключении или приеме" + ОписаниеОшибки();
Сообщ.Сообщить();
Возврат;
КонецПопытки;
// Массив будет содержать сообщения, которые в последствии будут удалены с сервера
МассивСообщенийОбмена = Новый Массив;
Если МассивСообщений.Количество() = 0 Тогда
// Сообщений в почтовом ящике нет
Сообщ.Текст = "Сообщений в почтовом ящике нет.";
Сообщ.Сообщить();
Возврат;
КонецЕсли;
ИмяФайлаСообщения = "";
Для Индекс = 0 По МассивСообщений.Количество() - 1 Цикл
// Отбираем только сообщения, которые содержат файлы прайсы, остальное спам
ЧастьТемы = "Price list";
Если Лев(МассивСообщений[Индекс].Тема, СтрДлина(ЧастьТемы)) = ЧастьТемы Тогда
Попытка
// Записываем файл
МассивСообщений[Индекс].Вложения[0].Данные.Записать(ПутьСохранения+"\"+МассивСообщений[Индекс].Вложения[0].ИмяФайла);
Сообщ.Текст = "Принят файл: " + МассивСообщений[Индекс].Вложения[0].ИмяФайла + " с адреса " + Профиль.Пользователь;
Сообщ.Сообщить();
Исключение
Сообщ.Текст = "Похоже нет файла в письме ";
Сообщ.Сообщить();
КонецПопытки;
Иначе
Почта.УдалитьСообщения(МассивСообщений[Индекс]);
КонецЕсли;
КонецЦикла;
Сообщ.Текст = "Сообщения получены!";
Сообщ.Сообщить();
Почта.Отключиться();
КонецПроцедуры
Категория:
Работа с Интернет, Почтой (Mail), FTP Запись СД из 1С(без ВК и других программ, проверено на ХР/2003) Код 1C v 7.x
Процедура Сформировать(ДискДляЗаписи="E:\",АвтоИзвлечениеСД=0,АвтоЗакрытиеМастера=1)
Перем Имя,Каталог;
scr=СоздатьОбъект("MSScriptControl.ScriptControl");
scr.language="javascript";
shell=СоздатьОбъект("Shell.Application");
scr.AddObject("Shell",shell);
ИмяСлужбы="Imap iService";
Если Shell.CanStartStopService(ИмяСлужбы)=0 Тогда
Предупреждение("Вам недозволено записывать диски СД!",5);
Возврат;
КонецЕсли;
scr.Eval("Shell.ServiceStart('"+ИмяСлужбы+"',true)");
РасположениеФайла(Каталог,Имя);
Если ФС.ВыбратьФайл(0,Имя,Каталог,"Выбирите файл для записи","Все файлы|*.*","*")=0 Тогда
Возврат;
КонецЕсли;
fso=СоздатьОбъект("Scripting.FileSystemObject");
wshshell=СоздатьОбъект("WScript.Shell");
КаталогДляЗаписи=wshshell.regread("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\CD Burning");
fso.CopyFile(Каталог+Имя,КаталогДляЗаписи+"\"+Имя,-1);
ДискДляЗаписиNS=shell.NameSpace(ДискДляЗаписи);
wshshell.regwrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CD Burning\Auto Eject",АвтоИзвлечениеСД,"REG_DWORD");
wshshell.regwrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\CD Burning\Auto Close",АвтоЗакрытиеМастера,"REG_DWORD");
scr.AddObject("Verbs",ДискДляЗаписиNS.items().item().verbs());
e=scr.Eval("new Enumerator(Verbs)");
Пока e.atEnd(0)=0 Цикл
Если Найти(Нрег(e.item(0).name),"записать файлы на компакт-диск")>0 Тогда
e.item(0).doit();
Пока wshshell.appactivate("Мастер записи компакт-дисков")=0 Цикл
КонецЦикла;
wshshell.sendkeys("{ENTER}")
КонецЕсли;
e.moveNext(0);
КонецЦикла;
Пока wshshell.appactivate("Мастер записи компакт-дисков")=-1 Цикл
ВвестиСтроку("","Пауза",1,0,1);
КонецЦикла;
КонецПроцедуры
Конечно метод дубовенький, расчитан тока на русскую версию, но можно и допеределать.
Не стал писать код определения пишущего сидирома и возможности записи (хотя на отсутствие диска или невозможность записать ОС сама укажет)...
Автор:
smaharbA
А через Nero можно записать так:
Код DOS Batch File
"C:\Program Files\Ahead\Nero\NeroCmd.exe" --no_user_interaction --write --real --iso Archive_1C --drivename M --force_erase_cdrw --dvd --dvd_high_compatibility --close_session --verify E:\Full_Archive_1C\*.* >H:\BackUp\Log\write.log
Категория:
Полезные, Универсальные Функции Практическая работа с почтой (E-mail,The Bat, Outlook, Mozilla Thunderbird) Код 1C v 8.х Попытка
ОтправитьПоПочте2 ( ТекСтрока) ;
Исключение
Попытка
ОтправитьПоПочте1 ( ТекСтрока) ;
Исключение
Сообщить_и_записать( "Ошибка при отправке почты - " + ОписаниеОшибки( ) , СтатусСообщения. Важное) ;
КонецПопытки ;
КонецПопытки ;
Процедура ОтправитьПоПочте1(ТекСтрока)
Почта = Новый Почта;
Сообщение = Новый ПочтовоеСообщение;
Почта. Подключиться( "name@mysite.dp.ua" , "password" ) ;
Сообщение. Вложения. Добавить( ПолучитьИмяФайлаПодразделения( ТекСтрока. филиал. наименование) ) ;
Сообщение. Получатели. Добавить( ТекСтрока. филиал. email) ;
Сообщение. Тема = "Проигнорированные документы в офисе. Письмо сгенерированно роботом" ;
Сообщение. Текст= "Проверьте, будь ласка эти документы ПОСЛЕ получения обновления из офиса. Ваши изменения в этих документах не попали в базу. Откройте прикрепленный файл" ;
Почта. Послать( Сообщение) ;
Почта. Отключиться( ) ;
УдалитьФайлы( ПолучитьИмяФайлаПодразделения( ТекСтрока. филиал. наименование) ) ;
КонецПроцедуры
Процедура ОтправитьПоПочте2(ТекСтрока)
ПочтовыйПрофиль = Новый ИнтернетПочтовыйПрофиль;
ПочтовыйПрофиль. АдресСервераPOP3 = "pop3.mysite.dp.ua" ;
ПочтовыйПрофиль. АдресСервераSMTP = "smtp.mysite.dp.ua" ;
ПочтовыйПрофиль. ПортSMTP = 25 ;
ПочтовыйПрофиль. ПортPOP3 = 110 ;
ПочтовыйПрофиль. Пользователь = "name" ;
ПочтовыйПрофиль. Пароль = "password" ;
ПочтовыйПрофиль. ВремяОжидания = 60 ;
Сообщение = Новый ИнтернетПочтовоеСообщение ;
Сообщение. Вложения. Добавить( ПолучитьИмяФайлаПодразделения( ТекСтрока. филиал. наименование) ) ;
Сообщение. Получатели. Добавить( ТекСтрока. филиал. email) ;
Сообщение. Тема = "Проигнорированные документы в офисе. Письмо сгенерированно роботом" ;
Сообщение. ИмяОтправителя= "Обмен" ;
Сообщение. Отправитель= "name@mysite.dp.ua" ;
Текст = Сообщение. Тексты. Добавить( "Проверьте, будь ласка эти документы ПОСЛЕ получения обновления из офиса. Ваши изменения в этих документах не попали в базу. Откройте прикрепленный файл" ) ;
Текст. ТипТекста = ТипТекстаПочтовогоСообщения. ПростойТекст;
Почта = Новый ИнтернетПочта( ) ;
Почта. Подключиться( ПочтовыйПрофиль) ;
Почта. Послать( Сообщение) ;
Почта. Отключиться( ) ;
УдалитьФайлы( ПолучитьИмяФайлаПодразделения( ТекСтрока. филиал. наименование) ) ;
КонецПроцедуры
А вот так 1с работает с Мозилой Сундербердом (который хорошо поддерживает
IMAP ):
Код 1C v 8.х ПутьМозиллы = """ C:/Program Files/Mozilla Thunderbird/thunderbird.exe"" " ;
Текст = Новый ЗаписьТекста( КаталогОбмена + "sendfiletofilial" + Строка( ТекСтрока. филиал. наименование) + ".bat" , КодировкаТекста. OEM) ;
Текст. ЗаписатьСтроку( "@echo off" ) ;
Текст. ЗаписатьСтроку( "@echo Отправка проигнорированных писем на филиал" + Строка( ТекСтрока. филиал. наименование) ) ;
СтрокаЗапуска = " -compose to='" + ТекСтрока. филиал. email+ "',cc='name@mysite.dp.ua',subject="" Проигнорированные документы в офисе. Письмо сгенерированно роботом"" ,body="" Проигнорированные документы в офисе. Письмо сгенерированно роботом"" ,attachment="" file://" ;
Файл = """ " + ПолучитьИмяФайлаПодразделения( ТекСтрока. филиал. наименование) + """ " ;
Текст. ЗаписатьСтроку( ПутьМозиллы+ СтрокаЗапуска + Файл) ;
Текст. ЗаписатьСтроку( "del " + Файл) ;
Текст. Закрыть( ) ;
ЗапуститьПриложение( КаталогОбмена + "sendfiletofilial" + Строка( ТекСтрока. филиал. наименование) + ".bat" , КаталогОбмена)
Получение почты
Код 1C v 8.х
Процедура КнопкаВыполнитьНажатие(Кнопка)
Почта = Новый ИнтернетПочта;
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль. АдресСервераPOP3 = "192.168.0.2" ;
Профиль. Пользователь = "romix" ;
Профиль. Пароль = "ТутНапишитеПароль" ;
Почта. Подключиться( Профиль) ;
МассивПисем = Почта. Выбрать( Ложь ) ;
Для Каждого Письмо из МассивПисем Цикл
Сообщить( "Получено письмо с заголовоком: " + Письмо. Тема) ;
Для Каждого Вложение из Письмо. Вложения Цикл
Сообщить( "Вложение: " + Вложение. ИмяФайла) ;
Вложение. Данные. Записать( "c:\tempdata\" + Вложение. ИмяФайла) ;
КонецЦикла ;
Для Каждого Текст из Письмо. Тексты Цикл
Сообщить( "Текст: " + Текст. Текст) ;
Текст. Данные. Записать( "c:\tempdata\ТекстСообщения.txt" ) ;
КонецЦикла ;
КонецЦикла ;
КонецПроцедуры
Автор: 1CLama
Категория:
Работа с Интернет, Почтой (Mail), FTP