Ошибка в снипете с# поиск письма на почте и активация ссылки

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Знакомый скинул снипет для поиска и активации нужной ссылки на почте. Но что-то у меня не робит. Проверял на Я-почте, вроде всё прописал как надо, но постоянно вылазит ошибка.

Код:
var res = ZennoPoster.MailConfirm("15;30;60", project.Variables["Mail"].Value, project.Variables["Parol_ot_mila"].Value, project.Variables["Email_server"].Value, Convert.ToInt32(project.Variables["Email_port"].Value), true, true, true, false, @"(?<=>)https://.*(?=</a>)", @"(?<=>)https://.*(?=</a>)", 0);
if (res!="") {res.Trim;}
instance.ActiveTab.Navigate(res, "");
if (instance.ActiveTab.IsBusy) instance.ActiveTab.WaitDownloading();
 

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Никто ничего подобного не использует?
Описание на примере Я-почты:
Mail - мыло
Parol_ot_mila - пароль от мыла
Email_server - imap.yandex.com
Email_port - 993

(?<=>)https://.*(?=</a>) - 2 раза повторяется, не знаю для чего. Это регулярка, по которому исчется необходимая ссылка в письмах. Странно, что нету регулярки для поиска необходимого письма. Хз, может мне не весь снипет скинули.
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
в обработчик почты зайди он тебе регулярку по нужному письму сделает и по нужной сылке
 

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
в обработчик почты зайди он тебе регулярку по нужному письму сделает и по нужной сылке
Это понятно, регулярку по поиску нужной ссылки я в обработчике почты и брал. Меня интересует чего снипет не работает, ошибка там какая или как. У тебя работает он?
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
отпиши в скайп - помогу )
 
  • Спасибо
Реакции: Malchishka

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Вы бы хоть ошибку написали. Авось бы ответ уже получили
 

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Ошибка выскакивает сразу, как только пытаешься запустить шаблон. Может директиву нужно какую-то прописывать?
 

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
532
Баллы
93
Ошибка выскакивает сразу, как только пытаешься запустить шаблон. Может директиву нужно какую-то прописывать?
У вас в проекте где-то си шарп код некорректный. Из-за этого он не компилируется и выдается такая ошибка
 

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Radzhab помог со снипетом, большое спасибо ему, он начал работать, но не совсем так, как мне нужно и довести его до ума у меня не получилось. Проблема в том, что я не могу никак разобраться как подставить в регулярку поиска письма по домену, который берём из переменной. Т.е. что бы регулярка выглядела так: (?<=>)https://ТУТ_ДОМЕН_ВЗЯТЫЙ_ИЗ_ПЕРЕМЕННОЙ.*(?=</a>) Потому что иначе снипет тянет ссылку не из того письма, видно, что новое письмо было открыто во входящих, но ссылку активации он выдаёт всегда первого письма из папки "Удалённые".

Вариант на данный момент:
Код:
var mail = project.Variables["Mail"].Value;
var pass = project.Variables["Parol_ot_mila"].Value;
var mail_server = project.Variables["Email_server"].Value;
var mail_port = Convert.ToInt32(project.Variables["Email_port"].Value);
var regex = "(?<=>)https://.*(?=</a>)";
var res = ZennoPoster.MailConfirm("5;10;15", mail, pass, mail_server, mail_port, true, true, true, false, regex, regex,0);

/*if (res.ToString()=="") {
    res.Trim; }*/

Tab tb = instance.MainTab;
if ((tb.IsVoid) || (tb.IsNull)) return -1;
            if (tb.IsBusy) tb.WaitDownloading();
            tb.Navigate(res);
            if (tb.IsBusy) tb.WaitDownloading();     

/*instance.ActiveTab.Navigate(res, "");
if (instance.ActiveTab.IsBusy)
    instance.ActiveTab.WaitDownloading();*/
            return "23";
 

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Оч нужная штука, через стандартный экшен почты, письма что-то совсем не ахти достаются. Help me please :bc:
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
+ очень долго
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
var regex = "https://"+project.Variables["domain"].value+"[^<]*?(?=</a)";
если корзина находится на первом месте в списке папок имап почты, то метод сначала заходит в удаленные, находит письмо и поэтому дальше не идет.
если возникает именно такая ситуация, то нужно использовать сторонние библиотеки для работы с имапом и учитывать название папок
подправил
 
Последнее редактирование:
  • Спасибо
Реакции: Malchishka

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
var regex = "https://"+project.Variables["dmain"]+"[^<]*?(?=</a)";
если корзина находится на первом месте в списке папок имап почты, то метод сначала заходит в удаленные, находит письмо и поэтому дальше не идет.
если возникает именно такая ситуация, то нужно использовать сторонние библиотеки для работы с имапом и учитывать название папок
Судя по тому, что и твоя строка не помогает "нужно использовать сторонние библиотеки для работы с имапом и учитывать название папок". Но спасибо и за это, теперь понятно откуда ноги растут, однако проблемы это не решает.

П.С. Я посмотрел, сколько почты не обрабатывает стандартный обработчик и офигел, валидная каптча уходит пачками в никуда. Други, давайте что-то придумаем, ибо дефолтный метод только разоряет, его кпд столь низок, что я просто поражаюсь, как до сих пор нету метода активации писем (на форуме), отдельного от стандартного.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Так экшен возвращает данные, но не те что нужно что ли? если объяснение LexxWork вам кажется соответствующим вашему запросу.
Код то по идее делает то же самое что и стандартный экшен. Как он может работать лучше не пойму.
 

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
Добрые люди подкинули другой снипет у которого логика немного иная, но потестировав его 2-е суток скажу, что КПД обработки писем со снипетом, мне кажется, несколько выше. Не буду врать, я и шаб слегонца подправил и логику, однако, на мой взгляд, логику стандартного обработчика писем нужно было бы оптимизировать.
Я понимаю, что наблюдение моё совсем не объективно, нужно было сделать рег по 100 каждым способом и посмотреть, что получится, однако не зареганными остались только "трудные варианты", поэтому проведу эксперимент чуть позже на других площадках. Тогда и скажу точно, а пока слова выше только домыслы да предположения, прошу не судить строго и не обижаться :-) возможно я и заблуждаюсь)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Ну просто метод то один и тот же. Другой вопрос что сейчас все ошибки связанные с почтой в логах в текущей версии выглядят как "не найдено письмо". При этом ошибки самого почтового сервера могут быть разные. С расширенными логами с которыми будет релиз скоро станет понятнее почему проблемы с почтой.
 
  • Спасибо
Реакции: Malchishka

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)