|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Работа с POP3 сервером |
|
|
[решено] Работа с POP3 сервером
|
Старожил Сообщения: 398 |
Профиль | Сайт | Отправить PM | Цитировать Здравствуйте!
Помогиет пожалуйста понять в чём проблема: #include <GUIConstantsEx.au3> TCPStartup() $ConnectedSocket = -1 $ConnectedSocket = TCPConnect("94.100.177.6", 110) If @error Then MsgBox(0, "", "Ошибка: " & @error) Exit EndIf Global $GuiMain = GUICreate("test", 300, 255) Global $GuiEdit = GUICtrlCreateEdit("", 10, 10, 280, 180) Global $GuiInput = GUICtrlCreateInput("", 10, 200, 280, 20) Global $GuiButtonSend = GUICtrlCreateButton("Выслать =>>", 200, 225) GUISetState() While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then Exit If $msg = $GuiButtonSend Then GUICtrlSetData($GuiEdit, _ "Я" & " > " & GUICtrlRead($GuiInput) & @CRLF & GUICtrlRead($GuiEdit)) TCPSend($ConnectedSocket, GUICtrlRead($GuiInput)) If @error Then Exit EndIf $recv = TCPRecv($ConnectedSocket, 2048) If @error Then Exit If $recv <> "" Then GUICtrlSetData($GuiEdit, _ "pop3" & " > " & $recv & @CRLF & GUICtrlRead($GuiEdit)) WEnd Скрипт коннектится показывает ответ сервера +OK, но когда я ввожу команду и нажимаю отправить сервер не отвечает.... Скажите пожалуйста как это исправить? И ещё вопросик как узнать IP адрес сервера? Например я ввожу pop.mail.ru, а скрипт должен мне показать 94.100.177.6 |
|
------- Отправлено: 16:19, 04-08-2009 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать morgan1991, все не так просто - POP3 использует протокол TELNET, поэтому требуется его пролная реализация в скрипте... либо (что проще) использовать для этого сторонние клиенты (Microsoft Telnet, PuTTY, etc.) или библиотеки (ExtraPUTTY)
|
Отправлено: 10:02, 05-08-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать 2morgan1991
может Вам вот это нужно http://www.autoitscript.com/forum/in...pic=23860&st=0 Хотя это немного из другой оперы |
Последний раз редактировалось abb269, 05-08-2009 в 11:02. Отправлено: 10:06, 05-08-2009 | #3 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата morgan1991:
|
|
Отправлено: 10:10, 05-08-2009 | #4 |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Цитата amel27:
Я не очень понимаю, но пробовал сделать так: $DllOpen = DllOpen("ExtraPuTTY.dll") DllCall($DllOpen, "char", "Connexion", "char", "pop.mail.ru", "unsigned long", "4", "char", "ЛОГИН", "char", "ПАРОЛЬ", & _ "bool", "TRUE", "long", "0", "unsigned long", "0", "long", "1") Помогите разобраться.... |
||
------- Отправлено: 17:15, 05-08-2009 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата morgan1991:
$ExtraPuTTY = EnvGet("ExtraPuTTY") ; путь к программе $thConn = DllStructCreate("ulong") ; структура описателя соединения If $ExtraPuTTY=="" Then MsgBox(16, "Script Error!", "Переменная окружения ExtraPuTTY н задана!") ; Открываем DLL $hDll = DllOpen($ExtraPuTTY &"\ExtraPuTTY.dll") If $hDll=-1 Then MsgBox(16, "Script Error!", "Файл ExtraPuTTY.DLL не найден!") ; Подключаемся... $aRet = DllCall($hDll, "int", "Connexion", _ "str", "94.100.177.6", _ ; TargetName (TargetName or PuttySession Name ) "ptr", DllStructGetPtr($thConn), _ ; ConnexionId (Connexion Handle) "str", "", _ ; Login "str", "", _ ; Password "int", 0, _ ; ShowPuTTY (TRUE: Putty Terminal is display, FALSE: not display) "int", 0, _ ; Protocol (0:Telnet,1:SSH,2:Rlogin,3:Raw,4:LoadPutty Session) "int", 110, _ ; PortNumber (If the parameter is set to 0, the value of the default settings of putty is used) "int", 0, _ ; GenerateReport (1:extraputty report activate,0:Not activate) "ptr", 0 ) ; CallBackRcvData ; Анализируем результат If @error Then MsgBox(16, "DllCall Error!", @error &":"& @extended) $hConn = DllStructGetData($thConn, 1) ; Получаем описатель соединения ConsoleWrite("Результат выполнения ф-ции Connexion = "& $aRet[0] &@CRLF) ; Закрываем соединение If $hConn <> 0 Then DllCall($hDll, "int", "CloseConnexion", "ulong", $hConn) EndIf Цитата morgan1991:
P.S. Для POP3 не нужно передавать Login/Password при установке соединения - для этого есть отдельные команды (USER/PASS), передаваемые уже в самом сеансе. |
||
Последний раз редактировалось amel27, 06-08-2009 в 07:13. Причина: оформление Отправлено: 06:00, 06-08-2009 | #6 |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Цитата amel27:
А если коменчу, то возвращает 1. |
|
------- Отправлено: 13:23, 06-08-2009 | #7 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата morgan1991:
цитата из справки: Цитата:
|
||
Отправлено: 13:29, 06-08-2009 | #8 |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Цитата amel27:
|
|
------- Отправлено: 13:36, 06-08-2009 | #9 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата morgan1991:
|
|
Отправлено: 13:51, 06-08-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Работа с сервером MySql | Smile | Программирование и базы данных | 0 | 14-10-2009 19:27 | |
V. 5.5/2000/2003 - [решено] аутентификация пользователя по POP3 | Greg106 | Microsoft Exchange Server | 6 | 13-10-2009 17:29 | |
V. 2007 - [решено] Внешние POP3 клиенты, релей писем | sgww | Microsoft Exchange Server | 9 | 25-08-2009 12:37 | |
[решено] Telnet или POP3? | stone_wings | Хочу все знать | 2 | 07-04-2008 23:47 | |
Работа с POP3 | Vovius | Программирование и базы данных | 1 | 06-05-2006 18:05 |
|