2010-08-02 11 views
5

Poplib veya imaplib, proxy desteği sunmuyor gibi görünüyor ve google-fu girişimlerine rağmen bu konuda fazla bilgi bulamadım. Çeşitli imap/pop etkin sunucularından e-postaları alıp yakınlık yoluyla bunu yapmak gerekiyor için piton kullanıyorumPython - Bir proxy üzerinden e-postaları POP veya IMAP aracılığıyla nasıl alabilirim?

.

İdeal olarak, python'u doğrudan yapabilmeyi isterim ancak bulamıyorsam, tüm trafiğin proxy'den geçmesini zorlamak için bir sarıcı (harici program/komut dosyası, OSX tabanlı) kullanmak istiyorum. daha iyi bir şey.

Herkes bana yardım edebilir mi? Python'da bir vekil aracılığıyla e-postaları almak için gereken tek kişi olduğumu hayal bile edemiyorum ...

** EDIT Başlık HTTP'yi kaldırmak için düzenle, çünkü ben çok hızlı yazmamalıyım yorgunum, çocuklar için üzgün **

ben http ek olarak çorap izin kullanmayı planlıyorum vekiller. http

Pop veya IMAP iş çok mantıklı (vatansız vs durum bilgisi) yapmazdım ama zihnimin çorap beni istediğim şeyi yapmaya olanak sağlayacak olmasıdır.

Şimdiye kadar istediğinizi elde etmenin tek yolu imaplib kirli korsanlığı gibi görünüyor ... doğrusu eğer yapabilirsem onu ​​önleyeceğini.

+1

Merak ediyorum: python olmasa bile bir http proxy üzerinden nasıl tünel yaparsınız? – hop

+0

Başlıktan Http kaldırıldı, benim hatam, çorap demek ... – Vermillon

cevap

0

Seni doğru anlarsam, yuvarlak bir deliğe bir kare peg koymaya çalışıyorsun.

Bir HTTP Proxy sadece "konuşmak" HTTP bunu doğrudan POP veya IMAP sunucusuna bağlanamıyor bilir.

Eğer posta sunucularına konuşmak için bir yere kendi sunucusu uygulamak gerekir bunu yapmak istiyorum. HTTP İstekleri alır ve Posta Sunucusuna uygun aramaları yapar. Örn .: Bu bir stateless birine bir durum bilgisi protokol dönüştürmek zorundayız çünkü bilmiyorum olurdu nasıl pratik

.

+0

% 100 haklısınız, çorap yeteneğinden bahsetmeyi unuttum. HTTP'yi başlıktan kaldırdım, bunun için üzgünüm, yoruldum; p – Vermillon

+3

HTTP proxy'sinin 'CONNECT' yöntemi, herhangi bir tcp client-> server protokolü çalıştırmanıza izin verir. * IF * HTTP proxy'sine izin verir, çoğu varsayılan yapılandırma 'CONNECT' isteklerini 443 numaralı bağlantı noktasına sınırlar. – MattH

+0

Ne demek istediğini anlıyorum ama thunderbird o zaman http proxy üzerinden nasıl bağlanıyor? –

4

Cevap sarmak için özen ... Socksipy kullanarak uğraşmadan bir proxy üzerinden gitmek için bir piton komut dosyasından Alt zorlamak için hızlı ve kirli yolu var (teşekkürler küresel soket geçersiz kılma açıkçası biraz acımasız ama düzgün alt sınıf IMAP4 ve IMAP4_SSL için zaman bulana kadar hızlı bir düzeltme olarak çalışan That)

import socks 
import socket 
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4,proxy_ip,port,True) 
socket.socket = socks.socksocket 

beni böyle işaret için MattH.

+0

1 de SMTP_SSL için çalışır: herhangi bir öneri: "[Errno soket hatası] ('zaman aşımı') IOError" D – alexandrul

+0

benim için işe yaramadı, ben var? – ImadOS

İlgili konular