Найти - Пользователи
Полная версия: IMAP4_SSL через прокси
Начало » Python для новичков » IMAP4_SSL через прокси
1
ivanzzz
Для IMAP4 и IMAP4_SSL переопределил метод open для подключения через прокси.С IMAP4 получилось, а вот с IMAP4_SSL он не реагирует на установленные прокси вообще. Использую socks4.
class SOCKS_IMAP4(imaplib.IMAP4):
    def __init__(self, host = '', port = imaplib.IMAP4_PORT,proxy_type = None, proxy = None):
            self.proxy = proxy
            self.proxy_type = proxy_type
            imaplib.IMAP4.__init__(self, host, port)
    def open(self,host,port=imaplib.IMAP4_PORT):
        self.host = host
        self.port = port
        self.sock = socksocket()        
        if self.proxy and self.proxy_type:
            proxy_ip,proxy_port = self.proxy.split(':')
            self.sock.setproxy(self.proxy_type,proxy_ip,int(proxy_port))
        self.sock.connect((host,port))
        self.file = self.sock.makefile('rb')
class SOCKS_IMAP4_SSL(imaplib.IMAP4_SSL):
    def __init__(self, host = '', port = imaplib.IMAP4_SSL_PORT,proxy_type = None, proxy = None,):
            self.proxy = proxy
            self.proxy_type = proxy_type
            imaplib.IMAP4_SSL.__init__(self, host, port)
    def open(self, host, port=imaplib.IMAP4_SSL_PORT):
        self.host = host
        self.port = port
        self.sock = socksocket()
        #actual privoxy default setting, but as said, you may want to parameterize it
        if self.proxy and self.proxy_type:
            proxy_ip,proxy_port = self.proxy.split(':')
            self.sock.setproxy(self.proxy_type,proxy_ip,int(proxy_port))
        self.sock = socket.create_connection((host, port))
        self.sslobj = ssl.wrap_socket(self.sock, self.keyfile, self.certfile)
        self.file = self.sslobj.makefile('rb')
ZerG
У вас на самом прокси открыт 443?

Пример конфигурации для кальмара тут
https://habrahabr.ru/post/267851/

Вам нужен метод коннект для SSL + поиграйтесь с версиями.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB