powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [python] Простой pop3 server
2 сообщений из 2, страница 1 из 1
[python] Простой pop3 server
    #39064712
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно возникла задача реализовать простой pop3 сервер, а точнее его часть, которая отвечает за аутентификацию. Нашел простой код на python, немного модифицировал его, но у сожалению он не делает, то что хотелось бы

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
#!/usr/bin/env python

import socket
import sys

c = socket.socket(socket.AF_INET, socket.SOCK_STREAM, socket.IPPROTO_TCP)
c.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
c.bind(('127.0.0.1', 110))
c.listen(1)


while 1:
    csock, caddr = c.accept()
    cfile = csock.makefile('rw', 0)
    cfile.write("+OK SImple pop server ready for requests\r\n")
    line = cfile.readline().strip()
    print "USER: " + line
    cfile.write("+OK send PASS\r\n")
    line = cfile.readline().strip()
    print "PASSWORD: " + line
    cfile.write("+OK Welcome.\r\n")
    cfile.close()
    c.close()
    sys.exit()



А надо собственно получить имя пользователя/пароль и отправить клиенту, что аутентификация прошла успешно. Я что то упускаю?

Если запускаю скрипт и проверяю например с Thunderbird, то вижу примерно такой вывод
Код: sql
1.
2.
3.
# python pop3.py
USER: CAPA
PASSWORD: QUIT
...
Рейтинг: 0 / 0
[python] Простой pop3 server
    #39064732
ALex_hha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shame on me! CAPA это команда pop3 протокола :D

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
pop3_capabilities='+OK Capability list follows\r\nUSER\r\nRESP-CODES\r\nEXPIRE 0\r\nLOGIN-DELAY 300\r\nTOP\r\nUIDL\r\nX-GOOGLE-RICO\r\nSASL PLAIN XOAUTH2 OAUTHBEARER\r\n.\r\n'

while 1:
    curr_user = ''
    curr_password = ''
    csock, caddr = c.accept()
    cfile = csock.makefile('rw', 0)
    cfile.write("+OK Simple pop server ready for requests\r\n")

    line = cfile.readline().strip()
    cfile.write(pop3_capabilities)

    line = cfile.readline().strip()
    curr_user = line.split('@')[0].split(' ')[1]

    cfile.write("+OK send PASS\r\n")
    line = cfile.readline().strip()
    curr_password = line.split(' ')[1]

    cfile.write("+OK Welcome.\r\n")
    print "User: " + curr_user + ", password: " + curr_password
    cfile.close()
    c.close()
    sys.exit()



В итоге получаю то, что собственно хотел
Код: sql
1.
2.
3.
# python pop3.py
POP server ready for requests
User: test, password: 123456789
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [python] Простой pop3 server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]