AutoIt: 3.2.12.1 или новее
Версия: 0.5
Категория: Сеть
Описание: Собрание функций для работы с IMAP4 - сервером
Код: Пример
Файл: imap4.zip
Снимок: N/A
История версий:
Источник: Нет
Автор(ы): Latoid
Версия: 0.5
Категория: Сеть
Описание: Собрание функций для работы с IMAP4 - сервером
Код: Пример
Код:
#include <_IMAP4.au3>
$Server = "ok.lirosta.lt"
$Login = "test" ; В качестве логина иногда нужно приводить полный e-mail, к примеру [email protected]
$Password = "test"
;~ Подключаемся к IMAP4 - серверу
_IMAP4Connect ($Server, $Login, $Password)
If @error Then
ConsoleWrite ("Не удалось подключится к IMAP4 серверу" & @CRLF)
Exit
Else
ConsoleWrite ("Успешно подключился к IMAP4 серверу" & @CRLF)
EndIf
; Посылаем команду NOOP (не делает ничего)
_IMAP4Noop()
If @error Then
ConsoleWrite ("Команда NOOP не прошла" & @CRLF)
Exit
Else
ConsoleWrite ("Команда NOOP прошла успешно" & @CRLF)
EndIf
; Получаем UIDL всех писем
Local $UIDLlist = _IMAP4Uidl()
If @error Then
ConsoleWrite ("Не удалось получить список UID всех писем" & @CRLF)
Exit
Else
ConsoleWrite ("Успешно получил список UID всех писем" & @CRLF)
_ArrayDisplay ($UIDLlist, "Номера и UIDL всех писем")
EndIf
; Получаем размер письма №1
Local $SizeList = _IMAP4List(1)
If @error Then
ConsoleWrite ("Не удалось получить размер письма" & @CRLF)
Exit
Else
ConsoleWrite ("Успешно получил размер письма" & @CRLF)
_ArrayDisplay ($SizeList, "Номер и размер письма")
EndIf
; Получаем весь заголовок письма №1
Local $Header = _IMAP4Top(1)
If @error Then
ConsoleWrite ("Не удалось получить заголовок письма" & @CRLF)
Exit
Else
ConsoleWrite ("Успешно получил заголовок письма" & @CRLF)
ConsoleWrite ($Header & @CRLF)
EndIf
; Получаем поля Subject, Date, From заголовка письма №1
Local $HeaderFields = _IMAP4Top(1, "Subject Date From")
If @error Then
ConsoleWrite ("Не удалось получить поля заголовка письма" & @CRLF)
Exit
Else
ConsoleWrite ("Успешно получил поля заголовка письма" & @CRLF)
ConsoleWrite ($HeaderFields & @CRLF)
EndIf
; Скачиваем письмо с №1
Local $Letter = _IMAP4Retr(1)
If @error Then
ConsoleWrite ("Не удалось получить письмо" & @CRLF)
Exit
Else
ConsoleWrite ("Успешно получил письмо" & @CRLF)
ConsoleWrite ($Letter & @CRLF)
EndIf
; Скачиваем письмо №1 с прогресс-баром
$MsgNum = 1
Local $SizeList = _IMAP4List($MsgNum)
If @error Then
ConsoleWrite ("Не удалось получить размер письма" & @CRLF)
Exit
Else
ConsoleWrite ("Успешно получил размер письма" & @CRLF)
$MsgSize = StringRegExpReplace ($SizeList[1], "^\d+\s", "")
ConsoleWrite ($MsgSize & @CRLF)
Local $Letter = _IMAP4Retr($MsgNum, $MsgSize)
If @error Then
ConsoleWrite ("Не удалось получить письмо" & @CRLF)
Exit
Else
ConsoleWrite ("Успешно получил письмо" & @CRLF)
ConsoleWrite ($Letter & @CRLF)
EndIf
EndIf
; Удаляем письмо с №1 (точнее ставим ему флаг "\Deleted")
;~ _IMAP4Dele(1)
;~ If @error Then
;~ ConsoleWrite ("Не удалось удалить письмо" & @CRLF)
;~ Exit
;~ Else
;~ ConsoleWrite ("Успешно удалил письмо" & @CRLF)
;~ EndIf
; Закрываем подключение к IMAP4 - серверу
_IMAP4Quit (True) ; True подтверждает окончательное удаление писем, помеченных флагом "\Deleted". По умолчанию стоит False
If @error Then
ConsoleWrite ("Не удалось закрыть подключение к IMAP4 серверу" & @CRLF)
Exit
Else
ConsoleWrite ("Успешно закрыл подключение к IMAP4 серверу" & @CRLF)
EndIf
;~ Разрываем TCP - сессию
_TCPDisconnect()
If @error Then
ConsoleWrite ("Не удалось закрыть TCP сессию" & @CRLF)
Exit
Else
ConsoleWrite ("Успешно закрыл TCP сессию" & @CRLF)
EndIf
Файл: imap4.zip
Снимок: N/A
История версий:
*17.01.2010 v 0.5 Незначительные изменения:
Переделана _IMAP4Retr() - теперь она выводит Progress Bar при скачивании письма, если ей передан второй параметр - размер
Ужесточена метка (tag) команд, передаваемых серверу. Теперь вероятность, что такая же строка встретится в теле письма или в заголовке - ничтожна
* 05.01.2010 v 0.5 Первый релиз
Список функций:
_IMAP4Connect() Подключается к IMAP4 серверу и переходит в папку Inbox
_IMAP4Uidl() Получает UIDL всех или указанных писем (в массиве)
_IMAP4List() Получает размеры (в байтах) всех или указанных писем (в массиве)
_IMAP4Top() Получает заголовок или указанные поля заголовка выбранного письма (в строке)
_IMAP4Noop() Посылает серверу команду NOOP
_IMAP4Retr() Получает письмо с указанным номером (в строке)
_IMAP4Dele() Удаляет указанное письмо (точнее ставит ему флаг "\Deleted")
_IMAP4Quit() Закрывает соединение с IMAP4 сервером
_TCPDisconnect() Закрывает TCP-сессию. Всегда вызывайте её после _IMAP4Quit()
Источник: Нет
Автор(ы): Latoid