Автор Тема: Открыть письмо в ящике на mail.ru  (Прочитано 5820 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн astati [?]

  • Новичок
  • *
  • Сообщений: 145
  • Репутация: 4
    • Награды
Здраствуйте! Всех с наступающим и помогите плиз...
Есть авторизация на mail.ru собственно.
А мне нужно после авторизации открыть одно из письм.

Код: AutoIt [Выделить]
#include <IE.au3>

$sLogin = 's'
$sPass = ''
$sUrl = 'http://mail.ru/'

$oIE = _IECreate($sUrl)
$oLogin = _IEGetObjById($oIE, 'mailbox__login')
$oPass = _IEGetObjByName($oIE, 'password')
$oCheck = _IEGetObjById($oIE, 'mailbox__anothers')
$oButton = _IEGetObjById($oIE, 'mailbox__submit__button')

_IEFormElementSetValue($oLogin, $sLogin)
_IEFormElementSetValue($oPass, $sPass)
_IEAction($oCheck, 'click')
_IEAction($oButton, 'click')
_IELoadWait($oIE)

;_IELinkClickByIndex ($oIE, 'mfAva_0')
;_IELinkClickByText ($oIE, "Новый Год в Argo!")
$oLinks = _IELinkGetCollection($oIE)
For $oLink in $oLinks
    $sLinkText = _IEPropertyGet($oLink, "Новый Год в Argo!")
    If StringInStr($sLinkText, $sMyString) Then
        _IEAction($oLink, "click")
        ExitLoop
    EndIf
Next
 

Как понял это код сообщения, но как я не пыталсЯ подставлять id или текс - нифига
<span class="js-attach messageline__attach" ><span class="js-attach-icon messageline__attach__icon icon icon_attach"></span><span class="messageline__attach__arrow"></span></span>

<span class="messageline__body">



<span id="mfBtn_0" class="messageline__microformat-buttons"></span>



<a class="messageline__body__link" rel="history" href="readmsg?id=13246477570000000749&folder=0">





<i id="mfAva_0" class="messageline__picture"></i>



<span class="messageline__body__name" title="[email protected]">



OnGa.ru



</span>

<span class="messageline__body__subject" title="Новый Год в Argo!">



Новый Год в Argo!



</span>



<span class="messageline__body__text" id="mfTxt_0"></span>



<span class="messageline__date" title="Пт 23 дек 2011 17:42:37">23 дек</span>

<i class="messageline__fade messageline__fade_name"></i>

<i class="messageline__fade messageline__fade_date"></i>

</a>

</span>
« Последнее редактирование: Декабрь 27, 2011, 07:13:39 от astati »

Русское сообщество AutoIt

Открыть письмо в ящике на mail.ru
« Отправлен: Декабрь 26, 2011, 20:52:26 »

Оффлайн Arei [?]

  • Скриптер
  • ****
  • Сообщений: 938
  • Репутация: 115
  • Пол: Мужской
    • Награды
Re: Открыть письмо в ящике на mail.ru
« Ответ #1, Отправлен: Декабрь 26, 2011, 22:52:01 »
Up

Оффлайн armenxxx1 [?]

  • Продвинутый
  • ***
  • Сообщений: 155
  • Репутация: 56
    • Награды
Извините, если я пишу неправильно, но я иностранец.

Оффлайн astati [?]

  • Новичок
  • *
  • Сообщений: 145

  • Автор темы
  • Репутация: 4
    • Награды
Re: Открыть письмо в ящике на mail.ru
« Ответ #3, Отправлен: Декабрь 27, 2011, 07:02:49 »
Arei спасиб тебе я даж не заметил, что свой ак на блюдечке выдал  :) ;D ;D :)

pop - штука полезная но не понятная :)  мож кто подскажет как с ней работать?.
« Последнее редактирование: Декабрь 27, 2011, 09:08:47 от astati »

Русское сообщество AutoIt

Re: Открыть письмо в ящике на mail.ru
« Ответ #3 Отправлен: Декабрь 27, 2011, 07:02:49 »

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 4003
  • Репутация: 960
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Открыть письмо в ящике на mail.ru
« Ответ #4, Отправлен: Декабрь 27, 2011, 12:53:14 »
astati  [?]
Цитировать
А мне нужно после авторизации открыть одно из письм.
Код: AutoIt [Выделить]
#include <IE.au3>
_IEErrorNotify(0)

$sUrl = 'http://mail.ru/'
$sLogin = 'Логин'
$sPassw = 'Пароль'
$sDomain = '@mail.ru'

$oIE = _IECreate($sUrl)

$oForm = _IEFormGetObjByName($oIE, 'Auth')
If @error Then
    ConsoleWrite('- Авторизация - >  Ok!' & @CRLF)
    $oForm = _IEFormGetCollection($oIE, 0)
    ConsoleWrite('- Входящие - > ')
    _IEFormSubmit($oForm, 0)
    _IELoadWait($oIE)
    ConsoleWrite(' Ok!' & @CRLF)   
Else
    ConsoleWrite('- Авторизация - > ')
    $oLogin = _IEFormElementGetObjByName($oForm, 'Login')
    $oPassw = _IEFormElementGetObjByName($oForm, 'Password')
    $oSelect = _IEFormElementGetObjByName ($oForm, 'Domain')
    _IEFormElementSetValue($oLogin, $sLogin)
    _IEFormElementSetValue($oPassw, $sPassw)
    _IEFormElementOptionSelect ($oSelect, $sDomain, 1, 'byText')
    _IEFormSubmit($oForm, 0)
    _IELoadWait($oIE)
    ConsoleWrite(' Ok!' & @CRLF)
    ConsoleWrite('- Входящие - > Ok!' & @CRLF)
EndIf

$oIN = _IEGetObjById($oIE, 'id-folder-name')
If StringInStr(_IEPropertyGet($oIN, 'innerText'), 'Входящие') Then
    $oLinks = _IELinkGetCollection($oIE)
    For $oLink in $oLinks

        If StringInStr($oLink.className, 'messageline__body__link') Then
            ConsoleWrite('- Открываем письмо #1 - > [' & _IEPropertyGet($oLink, 'innerText') & ']' & @CRLF)
            ; Клик по первому письму
            _IELinkClickByText($oIE, _IEPropertyGet($oLink, 'innerText'))
            ConsoleWrite('- Письмо - > Ok!' & @CRLF)
            ; Выход
            ExitLoop
        EndIf
    Next
EndIf


Скорблю и помню.




Оффлайн Arei [?]

  • Скриптер
  • ****
  • Сообщений: 938
  • Репутация: 115
  • Пол: Мужской
    • Награды
Re: Открыть письмо в ящике на mail.ru
« Ответ #5, Отправлен: Декабрь 27, 2011, 13:09:55 »
а как, открыть например 100 письмо?

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 4003
  • Репутация: 960
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Открыть письмо в ящике на mail.ru
« Ответ #6, Отправлен: Декабрь 27, 2011, 14:15:46 »
Arei  [?]
Цитировать
а как, открыть например 100 письмо?
Можно так:
Код: AutoIt [Выделить]
    $iCount = 1
    For $oLink in $oLinks

        If StringInStr($oLink.className, 'messageline__body__link') Then
            ConsoleWrite('- Открываем письмо #1 - > [' & _IEPropertyGet($oLink, 'innerText') & ']' & @CRLF)
            ; Клик по письму #5
            If $iCount = 5 Then
            _IELinkClickByText($oIE, _IEPropertyGet($oLink, 'innerText'))
            ConsoleWrite('- Письмо - > Ok!' & @CRLF)
            ; Выход
            ExitLoop
            EndIf
        $iCount += 1
        EndIf
    Next



Добавлено: Декабрь 27, 2011, 14:22:36
Если письмо сотое то, скорее всего, нужно будет перебирать страницы.
« Последнее редактирование: Декабрь 27, 2011, 14:22:37 от Garrett, Причина: Объединение сообщений »

Оффлайн astati [?]

  • Новичок
  • *
  • Сообщений: 145

  • Автор темы
  • Репутация: 4
    • Награды
Re: Открыть письмо в ящике на mail.ru
« Ответ #7, Отправлен: Декабрь 28, 2011, 06:43:27 »
как я понял он открывает самое свежее? То что надо.  :IL_AutoIt_1: :beer: :beer: :beer: :beer:

Русское сообщество AutoIt

Re: Открыть письмо в ящике на mail.ru
« Ответ #7 Отправлен: Декабрь 28, 2011, 06:43:27 »

Оффлайн zbz [?]

  • Новичок
  • *
  • Сообщений: 45
  • Репутация: 0
    • Награды
Re: Открыть письмо в ящике на mail.ru
« Ответ #8, Отправлен: Декабрь 22, 2017, 09:06:27 »
astati  [?]

Код: AutoIt [Выделить]
#include <IE.au3>
_IEErrorNotify(0)

$sUrl = 'http://mail.ru/'
$sLogin = 'Логин'
$sPassw = 'Пароль'
$sDomain = '@mail.ru'

$oIE = _IECreate($sUrl)

$oForm = _IEFormGetObjByName($oIE, 'Auth')
If @error Then
    ConsoleWrite('- Авторизация - >  Ok!' & @CRLF)
    $oForm = _IEFormGetCollection($oIE, 0)
    ConsoleWrite('- Входящие - > ')
    _IEFormSubmit($oForm, 0)
    _IELoadWait($oIE)
    ConsoleWrite(' Ok!' & @CRLF)   
Else
    ConsoleWrite('- Авторизация - > ')
    $oLogin = _IEFormElementGetObjByName($oForm, 'Login')
    $oPassw = _IEFormElementGetObjByName($oForm, 'Password')
    $oSelect = _IEFormElementGetObjByName ($oForm, 'Domain')
    _IEFormElementSetValue($oLogin, $sLogin)
    _IEFormElementSetValue($oPassw, $sPassw)
    _IEFormElementOptionSelect ($oSelect, $sDomain, 1, 'byText')
    _IEFormSubmit($oForm, 0)
    _IELoadWait($oIE)
    ConsoleWrite(' Ok!' & @CRLF)
    ConsoleWrite('- Входящие - > Ok!' & @CRLF)
EndIf

$oIN = _IEGetObjById($oIE, 'id-folder-name')
If StringInStr(_IEPropertyGet($oIN, 'innerText'), 'Входящие') Then
    $oLinks = _IELinkGetCollection($oIE)
    For $oLink in $oLinks

        If StringInStr($oLink.className, 'messageline__body__link') Then
            ConsoleWrite('- Открываем письмо #1 - > [' & _IEPropertyGet($oLink, 'innerText') & ']' & @CRLF)
            ; Клик по первому письму
            _IELinkClickByText($oIE, _IEPropertyGet($oLink, 'innerText'))
            ConsoleWrite('- Письмо - > Ok!' & @CRLF)
            ; Выход
            ExitLoop
        EndIf
    Next
EndIf


У меня на IE 11, логин пароль прописывает но не заходит в почту.

Русское сообщество AutoIt

Re: Открыть письмо в ящике на mail.ru
« Ответ #8 Отправлен: Декабрь 22, 2017, 09:06:27 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
27 Ответов
20279 Просмотров
Последний ответ Май 23, 2015, 11:32:13
от Popadinets
1 Ответов
2877 Просмотров
Последний ответ Апрель 01, 2011, 01:09:21
от CreatoR
30 Ответов
12288 Просмотров
Последний ответ Февраль 15, 2012, 13:35:52
от _Lexa98_
7 Ответов
6611 Просмотров
Последний ответ Сентябрь 10, 2012, 23:28:33
от valldar
3 Ответов
5202 Просмотров
Последний ответ Февраль 09, 2014, 17:55:55
от fuflik
0 Ответов
1909 Просмотров
Последний ответ Декабрь 18, 2012, 18:18:53
от Anb1s
3 Ответов
5261 Просмотров
Последний ответ Апрель 24, 2016, 08:19:03
от ВиталийВВ
0 Ответов
986 Просмотров
Последний ответ Май 26, 2016, 12:48:40
от ВиталийВВ
8 Ответов
1612 Просмотров
Последний ответ Июнь 16, 2016, 14:51:50
от Vovsla
27 Ответов
3029 Просмотров
Последний ответ Декабрь 10, 2016, 16:15:16
от ra4o