From: Dave on
First to admit I'm a newbie at Python, IMAP, or SSL. And it's been a
long time since I've posted anything to a Usenet group. But I've
spent countless hours spinning my wheels on this one, so I thought I'd
ask for help.

I'm trying write some Python code to connect to Gmail from work, where
I need to direct all non-HTTP traffic through a proxy server. Can
anyone provide syntax which would redirect the imap4_SSL method
through a proxy server:port? I suspect there are some environment
variables which, when set, will do this very easily and elegantly. I
also suspect there is a really complicated way to 'wrap' the imap
classes so as to force requests to go through a proxy which, as a
newbie, I am trying to avoid.

FYI, I'm currently running Python 2.5.2. via IDLE on Windows XP. But
when this project is done, I will move it to Linux.

Thanks for any help.

Dave
fkaprince, at Gmail, dot-com
From: Diez B. Roggisch on
Dave schrieb:
> First to admit I'm a newbie at Python, IMAP, or SSL. And it's been a
> long time since I've posted anything to a Usenet group. But I've
> spent countless hours spinning my wheels on this one, so I thought I'd
> ask for help.
>
> I'm trying write some Python code to connect to Gmail from work, where
> I need to direct all non-HTTP traffic through a proxy server. Can
> anyone provide syntax which would redirect the imap4_SSL method
> through a proxy server:port? I suspect there are some environment
> variables which, when set, will do this very easily and elegantly. I
> also suspect there is a really complicated way to 'wrap' the imap
> classes so as to force requests to go through a proxy which, as a
> newbie, I am trying to avoid.
>
> FYI, I'm currently running Python 2.5.2. via IDLE on Windows XP. But
> when this project is done, I will move it to Linux.

AFAIK that's simply not possible. Proxying that is not transparent is
only (for practical matters, there might be esoteric protocols that do
that as well) defined for HTTP. So "I need to direct all non-HTTP
traffic through a proxy server." does not make much sense - at least to me.


In other words: there is no such thing as general proxying, and thus no
support in any library e.g. imaplib or such.

Do you have an example of an application (e.g. mailclient or such) that
*does* support the above scenario?

Diez
From: Michael Ströder on
Diez B. Roggisch wrote:
> Dave schrieb:
>> I'm trying write some Python code to connect to Gmail from work, where
>> I need to direct all non-HTTP traffic through a proxy server.
>
> AFAIK that's simply not possible.

It's possible.

> Proxying that is not transparent is
> only (for practical matters, there might be esoteric protocols that do
> that as well) defined for HTTP.

Your mixing terms here.

> So "I need to direct all non-HTTP traffic through a proxy server."
> does not make much sense - at least to me.

The fact you don't know about it does not mean it does not make much
sense. ;-)

E.g. when using HTTPS the proxy does not see any HTTP traffic except the
HTTP CONNECT going to the proxy itself.

> Do you have an example of an application (e.g. mailclient or such) that
> *does* support the above scenario?

Widely used: OpenVPN, Netscape Communicator 4.x (at least for NNTPS - 10
years ago) etc.

The key-word to search for is HTTP CONNECT method. I'd try to implement
a file-like object for it and pass that into imap module. But the proxy
configuration may disallow it. Firewall admins also know the commonly
used freemail services.

Ciao, Michael.