Имя: Пароль:
1C
1С v8
Интересная задачка - почтовый ящик и 1с
0 Маленький Вопросик
 
01.09.11
06:35
Собственно хочу попробывать сделать следующее:

1.есть почтовый ящик (на яндексе) - на него падают заказы из электронного магазина.

2.есть некая внешняя обработка - ее задача - установлена в регламентном задании, каждый час проверяет почтовый ящик яндекса забирает от туда письма (удаляя их оттуда) и создает в самописной базе на основе письма какой-нибудь документ заказа...

кто-нибудь уже такое делал? поделитесь опытом)))
1 ДенисЧ
 
01.09.11
06:37
а что интересного? Интернет-Почта-объект для кого придуман?
2 big
 
01.09.11
06:38
(1) Ты ничего не понял! ТС просит делиться, а ты ему вопросы задаешь! )))
3 Маленький Вопросик
 
01.09.11
06:38
(1) а вообще возможно удалять программно письма на яндексе после их скачивания?
4 catena
 
01.09.11
06:40
Выбрать(<Удалять сообщения>, <Массив заголовков сообщений или идентификаторов>)
5 Asmody
 
01.09.11
06:40
(3) прикинь, pop3 так и работает по-умолчанию
6 catena
 
01.09.11
06:40
// значения свойств в примере условны
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = 1c.ru;
Профиль.АдресСервераPOP3 = 1c.ru;
Профиль.ПортSMTP = 25;
Профиль.ПортPOP3 = 110;
Профиль.Пользователь = "user";
Профиль.Пароль = "password";
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
7 catena
 
01.09.11
06:41
В общем-то и все, что надо :)
8 Нуф-Нуф
 
01.09.11
06:41
имхо обычная задача. подбное уже решалось многими и неоднократно еще на 7.7. юзай объект почта и колдуй все что тебе вздумается.
9 Wobland
 
01.09.11
06:46
(6) вот ты и сдала свой логин/пароль ;)
10 IamAlexy
 
01.09.11
06:47
(9) ага.. к своему сайту...
11 catena
 
01.09.11
06:47
(9)Это не мой... Это СП-шный :)
12 Wobland
 
01.09.11
06:49
(11) да ну? синтаксическая ошибка в СП?
13 catena
 
01.09.11
06:51
(12)Про 1c.ru;?
кнтрлС+кнтрлV
ИнтернетПочта (InternetMail)
Подключиться (Logon)
Синтаксис:
Подключиться(<Почтовый профиль>)
14 Маленький Вопросик
 
01.09.11
06:52
щас функцию попробую написать, которая будет возвращать массив писем...
15 Маленький Вопросик
 
01.09.11
06:54
(8) мне интересно, подобного я еще не решал...
16 Wobland
 
01.09.11
06:55
(13) точно ошибка! надо взять на заметку
17 skunk
 
01.09.11
06:55
(14)смотри не устань

Профиль = Новый ИнтернетПочтовыйПрофиль;
// ...
// заполнение профиля
// ...

Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
Заголовки = Почта.ПолучитьЗаголовки();
Если Заголовки.Количество() = 0 Тогда
   Текст = "ru=""На сервере нет сообщений!"";"
    + " en=""There are no messages on the server!""";
   Предупреждение(НСтр(Текст),,НСтр("ru=""Нет сообщений"";" en=""No messages"""));
КонецЕсли;

// выбираем из массива Заголовки сообщения,
// которые необходимо получить полностью

Письма = Почта.Выбрать(Истина, Заголовки);

// Письма и Заголовки содержат одинаковый
// набор полных сообщений

Почта.Отключиться();
18 Маленький Вопросик
 
01.09.11
07:05
у меня вопрос - яндекс использует сервер imap.yandex.ru, а не pop3.yandex.ru

это как-то повлияет??? чисто физически еще не успел просто проверить
19 Маленький Вопросик
 
01.09.11
07:12
Ошибка при вызове метода контекста (Подключиться): Ошибка при попытке соединения с сервером "imap.yandex.ru:110"
20 Wobland
 
01.09.11
07:14
(19) а почитать?
http://help.yandex.ru/mail/?id=1113199
21 Маленький Вопросик
 
01.09.11
07:28
Да прочитал уже... ептыть... не хочет соединяться не пойму почему пока...

Процедура ОсновныеДействияФормыПрочитатьПочту(Кнопка)

   МассивСообщений = Новый Массив;
   
   Профиль = новый ИнтернетПочтовыйПрофиль;
   Профиль.АдресСервераPOP3 = "pop.yandex.ru";
   Профиль.Пользователь = //
   Профиль.Пароль = //
   Профиль.ПортPOP3 =110;
   ПРофиль.АутентификацияPOP3 = СпособPOP3Аутентификации.Обычная;
   
   Попытка
       Состояние("Подключение к серверу "+Профиль.АдресСервераPOP3);
       Почта1 = Новый ИнтернетПочта;
       Почта1.Подключиться(Профиль);
       
       Состояние("Чтение почтовых сообщений...");
       МассивСообщений = Почта1.Выбрать(Ложь); // ЛОжь - писмьа с сервера не удаляются...
   Исключение
       Сообщить("Ошибка подключения к серверу!");
       Сообщить(""+ОписаниеОшибки());
   КонецПопытки;
   
   Если МассивСообщений.Количество() = 0 Тогда
       Сообщить("Почтовый ящик пуст");
       Возврат;
   КонецЕсли;
   
   Для Индекс = 0 По МассивСообщений.Количество() - 1 Цикл
       Сообщить("Тема: "+МассивСообщений[Индекс].Тема+" от "+МассивСообщений[Индекс].ДатаОтправления+" "+МассивСообщений[Индекс].Тексты.Получить(0));
   КонецЦикла;
   
   Почта1.Отключиться();    
   
КонецПроцедуры
22 Wobland
 
01.09.11
07:42
(21) обычно в таких случаях помогает чтение ОписаниеОшибки()
23 Wobland
 
01.09.11
07:44
кстати, у тебя действительно говорит про ошибку подключения и тут же про почтовый ящик пуст? процедура-телепат? ;)
24 Маленький Вопросик
 
01.09.11
07:48
(23) да не - в ящике есть пара писем... ошибка такая:

Ошибка подключения к серверу!
{Форма.Форма.Форма(16)}: Ошибка при вызове метода контекста (Подключиться): Ошибка при попытке соединения с сервером "pop.yandex.ru:110" (10060)


это я код откуда-то выдернул из инета...

может прокси не пускает???
25 Маленький Вопросик
 
01.09.11
07:49
как с прокси работать, если что?
26 Wobland
 
01.09.11
07:52
а вот прокси, похоже, не обходится...

я о противоречивости двух последовательных сообщений в (23)
27 Маленький Вопросик
 
01.09.11
07:53
Это мелочи... вот так устроит?

  Попытка
       Состояние("Подключение к серверу "+Профиль.АдресСервераPOP3);
       Почта1 = Новый ИнтернетПочта;
       Почта1.Подключиться(Профиль);
       
       Состояние("Чтение почтовых сообщений...");
       МассивСообщений = Почта1.Выбрать(Ложь); // ЛОжь - писмьа с сервера не удаляются...

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


что с прокси делать???
28 mirosh
 
01.09.11
08:00
(0) В конфигурации "Торговля" есть уже готовый документ - электронное письмо. Его остается только заполнить, записать и вызвать функцию "отправить письмо".


Процедура СоздатьИОтправитьЭлектронноеПисьмо(ИмяФайлаВложения, ПутьКФайлуВложения) Экспорт
   
   // Создание письма.
   НовоеПисьмо = Документы.ЭлектронноеПисьмо.СоздатьДокумент();
   НовоеПисьмо.Дата            = ТекущаяДата();
   НовоеПисьмо.ДатаОтправления = ТекущаяДата();
   НовоеПисьмо.ЗаголовокПисьма = "";
   НовоеПисьмо.Тема            = "";
   НовоеПисьмо.ТекстПисьма     = "";
   НовоеПисьмо.УчетнаяЗапись   = Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоНаименованию("andrew.mirosh@gmail.com");
   НовоеПисьмо.Кому            = "andrew.mirosh@gmail.com";
       
   НовоеПисьмо.Записать(РежимЗаписиДокумента.Запись);
       
   // Вложение в письмо.
   НовоеВложение = Справочники.ВложенияЭлектронныхПисем.СоздатьЭлемент();
   НовоеВложение.Объект   = НовоеПисьмо.Ссылка;
   НовоеВложение.ИмяФайла = ПутьКФайлуВложения;
   НовоеВложение.Хранилище = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПутьКФайлуВложения));
   НовоеВложение.Записать();
       
   НовоеПисьмо.ОтправитьПисьмо();

КонецПроцедуры
29 Wobland
 
01.09.11
08:07
(28) там же всё сводится в конечном итоге к
           Попытка
               ИнтернетПочта.Подключиться(Профиль);
           Исключение

та же беда с прокси, не?
30 Wobland
 
01.09.11
08:14
хотел было съязвить по поводу заголовка ветки, но действительно интересно получается с этим прокси
http://www.freeproxy.ru/ru/free_proxy/faq/how_check_mail_through_proxy.htm
31 Wobland
 
01.09.11
08:16
pop3 и proxy серверы несовместимы, поскольку сам протокол не предусматривает общение с почтовым сервером через прокси сервер
© http://www.zemskov.ru/pop3.html
32 Маленький Вопросик
 
01.09.11
08:28
и что получается - при установленном прокси - получить почту невозможно?
33 Маленький Вопросик
 
01.09.11
08:31
люди кто делал с прокси - отзовитесь!!!
34 Wobland
 
01.09.11
08:38
(32) надо сам прокси допиливать
35 Злобный Фей
 
01.09.11
08:39
Проксю надо настроить, чтобы пропускало почту
36 Маленький Вопросик
 
01.09.11
08:47
(35) интересно, как ее настроит?
37 Wobland
 
01.09.11
08:51
перестань задавать вопросы и иди почитай чего-нибудь. например, (30)
38 Злобный Фей
 
01.09.11
08:51
(36) А какая конкретно прокся стоит ты предлагаешь телепатировать?
39 Маленький Вопросик
 
01.09.11
08:55
(38) не знаю... у админа надо спросить...
40 andrewks
 
01.09.11
08:55
(30) там ссылки на портмапперы нерабочие
можно взять tcppm из проекта 3proxy
41 andrewks
 
01.09.11
08:58
кстати, там же есть pop3 и smtp прокси, но я их не пробовал, делаю через маппинг
42 Маленький Вопросик
 
01.09.11
09:07
(41) никогда с этими вещами не разбирался...
43 ДенисЧ
 
01.09.11
09:08
(42) Или начни разбираться, или позови админа.
44 manyak
 
01.09.11
09:14
включи на проксе себе Nat  и вперед, как без прокси будешь
45 andrewks
 
01.09.11
09:19
(44) жесть...
46 manyak
 
01.09.11
09:29
(45) и ведь работает :)
47 Дикообразко
 
01.09.11
09:30
а в чем интерес то?
48 Маленький Вопросик
 
01.09.11
09:31
(43) админа трогать нельзя...)))
49 Маленький Вопросик
 
02.09.11
14:10
без прокси работает с.ка
50 andrewks
 
02.09.11
14:14
(49) могу подсказать, как сделать так, чтобы не работало и без прокси
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.