helpf.pro
Регистрация
 +2 
Распечатать

Как организовать работу с почтой без установленного почтового клиента на компьютере пользователя?

Код 1C v 8.х
 // Сформировать почтовый профиль.
// При отправке нет необходимости указывать настройки, связанные с POP сервером.
ИПП = Новый ИнтернетПочтовыйПрофиль;
ИПП.АдресСервераSMTP = Константы.АдресСервераSMTP.Получить();
ИПП.ВремяОжидания = Константы.ВремяОжидания.Получить();
ИПП.Пароль = Константы.Пароль.Получить();
ИПП.ПарольSMTP = Константы.ПарольSMTP.Получить();
ИПП.Пользователь = Константы.Пользователь.Получить();
ИПП.ПользовательSMTP = Константы.ПользовательSMTP.Получить();
ИПП.ПортSMTP = Константы.ПортSMTP.Получить();

// Создать сообщение.
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Получатели.Добавить("file@server.ru");
Сообщение.Отправитель.Адрес = "test@serv.ru";
Сообщение.Тема = "Срочно в номер!";
Сообщение.Тексты.Добавить("Доброе время суток!");

Вложение = Новый ДвоичныеДанные(ПутьКФайлуВложения);
Сообщение.Вложения.Добавить(Вложение,"attach.txt");

// Подключиться и отправить.
Почта = Новый ИнтернетПочта;
Почта.Подключиться(ИПП);
Почта.Послать(Сообщение);
Почта.Отключиться();

// Формирование почтового профиля.
// При получении нет необходимости указывать настройки, связанные с SMTP сервером.
СостояниеПриема = "Подключение к серверу";
ИПП = Новый ИнтернетПочтовыйПрофиль;
ИПП.АдресСервераPOP3 = Константы.АдресСервераPOP3.Получить();
ИПП.ВремяОжидания = Константы.ВремяОжидания.Получить();
ИПП.Пароль = Константы.Пароль.Получить();
ИПП.Пользователь = Константы.Пользователь.Получить();
ИПП.ПортPOP3 = Константы.ПортPOP3.Получить();

Соединение = Новый ИнтернетПочта;
Соединение.Подключиться(ИПП);
СостояниеПриема = "Получение выборки писем";
Выборка = Соединение.Выбрать(ЗабиратьССервера);
СостояниеПриема = "Создание документов - писем";
КоличествоВВыборке = Выборка.Количество();
Индекс = 1;

Для Каждого Письмо Из Выборка Цикл
ТекПозиция = Окр(Индекс * 100/КоличествоВВыборке);
Если ТекПозиция <> Позиция Тогда
Позиция = ТекПозиция;
КонецЕсли;

Док = Документы.Письмо.СоздатьДокумент();
Док.Тема = Письмо.Тема;
СтрПолучатели = "";

Для Каждого Адрес Из Письмо.Получатели Цикл
СтрПолучатели = СтрПолучатели + Адрес.Адрес + ",";
КонецЦикла;

Док.Получатели = СтрПолучатели;
Если ТипЗнч(Письмо.Отправитель) = Тип("Строка") Тогда
Отправитель = Письмо.Отправитель;
Иначе
Отправитель = Письмо.Отправитель.Адрес;
КонецЕсли;

Док.Отправитель = Отправитель;
Содержание = "";

Для Каждого ТекстСообщения Из Письмо.Тексты Цикл
Содержание = Содержание + ТекстСообщения.Текст + Символы.ПС;
КонецЦикла;

Док.Содержание = Содержание;
Индекс = Индекс + 1;
Док.Записать();
КонецЦикла;

Соединение.Отключиться();
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 15560
 +2 
Распечатать
Возможно, вас также заинтересует
10060 (0x0000274C): Попытка установить соединение была безуспешной 0
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через...
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 0
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже...
Google maps : вывод точек на карту и режим панорамы 2
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С...
Посмотреть все результаты поиска похожих
Комментарии
r-guliev
12.09.2012 16:23Комментарий: 8
r-guliev
Код 1C v 8.2 УП
 	 // коонектимся с сервером
ПочтовыйПрофиль = Новый ИнтернетПочтовыйПрофиль;

ПочтовыйПрофиль.АдресСервераPOP3 = "pop.mail.ru";
ПочтовыйПрофиль.АдресСервераSMTP = "smtp.mail.ru";

ПочтовыйПрофиль.ПортSMTP = 25;
ПочтовыйПрофиль.ПортPOP3 = 110;

ПочтовыйПрофиль.Пользователь = "login";
ПочтовыйПрофиль.Пароль = "password";

ПочтовыйПрофиль.ПользовательSMTP = "login";
ПочтовыйПрофиль.ПарольSMTP = "password";

ПочтовыйПрофиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;

//--------------------------------------------------------
// соберем Сообщение
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Отправитель = "Твоя почта@mail.ru";
Сообщение.ИмяОтправителя = "Рустик";
Сообщение.Получатели.Добавить("Почта получателя@mail.ru");
Сообщение.Тема = "проверка связи";
Текст = Сообщение.Тексты.Добавить("Привет Старый!");
Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;
// шлеп Привет и машем ручкой в почту
Почта = Новый ИнтернетПочта;

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

Почта.Отключиться();
E_Migachev
22.08.2011 11:17Комментарий: 7
E_Migachev
Александр пишет:
Ошибок в коде вроде нет, но нужно указать аутефикацию smtp. Тогда все будет работать.
Вот полный исходный рабочий код:
(Вместо Тра-ля-ля вводите свои данные у меня все заработало...)
Код 1C v 8.х
 
ПочтовыйПрофиль = Новый ИнтернетПочтовыйПрофиль;

ПочтовыйПрофиль.АдресСервераPOP3 = "pop3.mail.ru";
ПочтовыйПрофиль.АдресСервераSMTP = "smtp.mail.ru";

ПочтовыйПрофиль.ПортSMTP = 25;
ПочтовыйПрофиль.ПортPOP3 = 110;

ПочтовыйПрофиль.Пользователь = "Тра-ля-ля";
ПочтовыйПрофиль.Пароль = "Тра-ля-ля";

ПочтовыйПрофиль.ПользовательSMTP ="Тра-ля-ля";
ПочтовыйПрофиль.ПарольSMTP ="Тра-ля-ля";

//Вот где была загвоздка
ПочтовыйПрофиль.АутентификацияSMTP=СпособSMTPАутентификации.ПоУмолчанию;
//

ПочтовыйПрофиль.ВремяОжидания = 60;

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

Сообщение.Вложения.Добавить("G:\1122.txt");
Сообщение.Получатели.Добавить("test@mail.ru");

Сообщение.Получатели.Добавить(ТекСтрока.филиал.email);

Сообщение.Тема ="Проигнорированные документы в офисе. Письмо сгенерированно роботом";

Сообщение.ИмяОтправителя="Обмен";
Сообщение.Отправитель="Тра-ля-ля";

Текст = Сообщение.Тексты.Добавить("Проверьте эти документы ПОСЛЕ получения обновления из офиса. Ваши изменения в этих документах не попали в базу. Откройте прикрепленный файл");

Текст.ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст;

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

Почта.Подключиться(ПочтовыйПрофиль);

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

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

Такая ошибка возникает и на других почтовых хостах.
mozz
29.03.2011 16:15Комментарий: 6
mozz
Просто чтобы релеить почту надо аутентифицироваться по SMTP (по крайней мере обычно так почтовые сервера настраивают) без этого почту можно послать только там адресатам, которые располагаются на этом почтовом сервере, а если например, у нас smtp сервер server.ru а мы хотим послать письмо по адресу vasyapupkin@drugoyserver.ru то получим отлуп от сервера Relay deny
mozz
29.03.2011 16:08Комментарий: 5
mozz
по моему чтобы данный пример работал с аутентификацией по SMTP надо еще добавить:
Код 1C v 8.х
 ИПП.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;   
E_Migachev
29.03.2011 14:27Комментарий: 4
E_Migachev
Про Профиль спасибо, исправил *13
Evlanov
29.03.2011 13:06Комментарий: 3
Evlanov
E_Migachev, пример не только не работает, но и содержит синтаксическую ошибку:
"Переменная не определена (Профиль)".
E_Migachev
29.03.2011 09:07Комментарий: 2
E_Migachev
Evlanov, все работает, проверено уже несколько раз, проверяйте свои настройки подключения!
Evlanov
28.03.2011 22:34Комментарий: 1
Evlanov
Данный пример не работает!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.