Что нового

Открыть письмо в ящике на mail.ru

astati

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

Код:
#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>
 
Автор
A

astati

Новичок
Сообщения
145
Репутация
4
Arei спасиб тебе я даж не заметил, что свой ак на блюдечке выдал :smile: ;D ;D :smile:

pop - штука полезная но не понятная :smile: мож кто подскажет как с ней работать?.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
astati [?]
А мне нужно после авторизации открыть одно из письм.
Код:
#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
а как, открыть например 100 письмо?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Arei [?]
а как, открыть например 100 письмо?
Можно так:
Код:
$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



Добавлено:
Сообщение автоматически объединено:

Если письмо сотое то, скорее всего, нужно будет перебирать страницы.
 
Автор
A

astati

Новичок
Сообщения
145
Репутация
4
как я понял он открывает самое свежее? То что надо. :IL_AutoIt_1: :beer: :beer: :beer: :beer:
 

zbz

Новичок
Сообщения
74
Репутация
1
Garrett сказал(а):
astati [?]

Код:
#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, логин пароль прописывает но не заходит в почту.
 
Верх