Imap is not on port 443. IIRC, it's late and I'm to lazy to even google it right now, but it's port 143 isn't it.<br><br><br><br><div class="gmail_quote">On Wed, Feb 16, 2011 at 11:58 PM, Andrea Gavana <span dir="ltr"><<a href="mailto:andrea.gavana@gmail.com">andrea.gavana@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hi All,<br>
<br>
I apologize in advance if I'm going to write very stupid things,<br>
my expertise in http/socket/imap stuff is very close to zero. I'm<br>
using Python 2.6.5 on Windows XP SP3.<br>
<br>
I am trying to access my GMail account from my office, and it appears<br>
our company's firewall is blocking all SMTP/POP3/IMAP attempts or<br>
there is simply something I don't understand. My first try was to use<br>
imaplib as follows:<br>
<br>
<br>
import imaplib<br>
<br>
m = imaplib.IMAP4_SSL('<a href="http://imap.gmail.com" target="_blank">imap.gmail.com</a>', 443)<br>
m.login(username, password)<br>
<br>
<br>
And I get the following:<br>
<br>
<br>
Traceback (most recent call last):<br>
File "D:\MyProjects\gmail.py", line 17, in <module><br>
m = imaplib.IMAP4_SSL('<a href="http://imap.gmail.com" target="_blank">imap.gmail.com</a>', 443)<br>
File "C:\Python26\lib\imaplib.py", line 1138, in __init__<br>
IMAP4.__init__(self, host, port)<br>
File "C:\Python26\lib\imaplib.py", line 163, in __init__<br>
self.open(host, port)<br>
File "C:\Python26\lib\imaplib.py", line 1150, in open<br>
self.sslobj = ssl.wrap_socket(self.sock, self.keyfile, self.certfile)<br>
File "C:\Python26\lib\ssl.py", line 350, in wrap_socket<br>
suppress_ragged_eofs=suppress_ragged_eofs)<br>
File "C:\Python26\lib\ssl.py", line 118, in __init__<br>
self.do_handshake()<br>
File "C:\Python26\lib\ssl.py", line 293, in do_handshake<br>
self._sslobj.do_handshake()<br>
ssl.SSLError: [Errno 8] _ssl.c:480: EOF occurred in violation of protocol<br>
<br>
<br>
OK. Then I googled back and forth for a possible solution, and I got a<br>
hint that (maybe) the problem could be related to proxy<br>
authentication. And I tried this solution (which uses SocksiPy) I<br>
found on the web (username2 and password2 are the user name and<br>
password for our company's proxy):<br>
<br>
import socks<br>
import socket<br>
<br>
proxy_ip = "10.100.100.20" # Your proxy IP/DNS here<br>
<br>
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxy_ip, 8080, True,<br>
username2, password2)<br>
socket.socket = socks.socksocket<br>
<br>
import imaplib<br>
<br>
m = imaplib.IMAP4_SSL('<a href="http://imap.gmail.com" target="_blank">imap.gmail.com</a>', 443)<br>
m.login(username, password)<br>
<br>
<br>
This solution just hangs forever at the line:<br>
<br>
m = imaplib.IMAP4_SSL('<a href="http://imap.gmail.com" target="_blank">imap.gmail.com</a>', 443)<br>
<br>
And it never returns (it never gets to the m.login() stuff).<br>
<br>
<br>
Then I tried with libgmail, giving it the option of setting the proxy<br>
name and port:<br>
<br>
import libgmail<br>
<br>
# Connect from behind a proxy <a href="http://www.myproxy.org:3128" target="_blank">www.myproxy.org:3128</a> using<br>
# proxy authentication user = 'john', password = 'proxy4321'<br>
libgmail.PROXY_URL = username2:password2@my_company_proxy:443' #<br>
Define the proxy<br>
<br>
ga = libgmail.GmailAccount(username, password)<br>
ga.login()<br>
<br>
<br>
And I got this at first:<br>
<br>
Traceback (most recent call last):<br>
File "D:\MyProjects\gmail2.py", line 8, in <module><br>
ga.login()<br>
File "C:\Python26\lib\site-packages\libgmail.py", line 305, in login<br>
pageData = self._retrievePage(req)<br>
File "C:\Python26\lib\site-packages\libgmail.py", line 340, in _retrievePage<br>
req = ClientCookie.Request(urlOrRequest)<br>
File "C:\Python26\lib\site-packages\mechanize\_request.py", line 31,<br>
in __init__<br>
if not _rfc3986.is_clean_uri(url):<br>
File "C:\Python26\lib\site-packages\mechanize\_rfc3986.py", line 63,<br>
in is_clean_uri<br>
return not bool(BAD_URI_CHARS_RE.search(uri))<br>
TypeError: expected string or buffer<br>
<br>
<br>
Then I brutally hacked into mechanize here and there and I was able to<br>
fix all non-internet related errors. And when I try the libgmail<br>
solution above now I get:<br>
<br>
Traceback (most recent call last):<br>
File "D:\MyProjects\gmail2.py", line 8, in <module><br>
ga.login()<br>
File "C:\Python26\lib\site-packages\libgmail.py", line 305, in login<br>
pageData = self._retrievePage(req)<br>
File "C:\Python26\lib\site-packages\libgmail.py", line 348, in _retrievePage<br>
resp = self.opener.open(req)<br>
File "C:\Python26\lib\site-packages\mechanize\_opener.py", line 193, in open<br>
response = urlopen(self, req, data)<br>
File "C:\Python26\lib\site-packages\mechanize\_urllib2_fork.py",<br>
line 344, in _open<br>
'_open', req)<br>
File "C:\Python26\lib\site-packages\mechanize\_urllib2_fork.py",<br>
line 332, in _call_chain<br>
result = func(*args)<br>
File "C:\Python26\lib\site-packages\mechanize\_urllib2_fork.py",<br>
line 1171, in https_open<br>
return self.do_open(conn_factory, req)<br>
File "C:\Python26\lib\site-packages\gmail_transport.py", line 145, in do_open<br>
return ClientCookie.HTTPSHandler.do_open(self,<br>
ProxyHTTPSConnection.new_auth(self.proxy, self.proxy_user,<br>
self.proxy_passwd), req)<br>
File "C:\Python26\lib\site-packages\mechanize\_urllib2_fork.py",<br>
line 1118, in do_open<br>
raise URLError(err)<br>
urllib2.URLError: <urlopen error Tunnel connection failed: 403<br>
Forbidden ( The ISA Server denied the specified Uniform Resource<br>
Locator (URL). )><br>
<br>
<br>
Just in case, I have tried also with port 80, with similar results:<br>
<br>
Traceback (most recent call last):<br>
File "D:\MyProjects\gmail2.py", line 8, in <module><br>
ga.login()<br>
File "C:\Python26\lib\site-packages\libgmail.py", line 305, in login<br>
pageData = self._retrievePage(req)<br>
File "C:\Python26\lib\site-packages\libgmail.py", line 348, in _retrievePage<br>
resp = self.opener.open(req)<br>
File "C:\Python26\lib\site-packages\mechanize\_opener.py", line 193, in open<br>
response = urlopen(self, req, data)<br>
File "C:\Python26\lib\site-packages\mechanize\_urllib2_fork.py",<br>
line 344, in _open<br>
'_open', req)<br>
File "C:\Python26\lib\site-packages\mechanize\_urllib2_fork.py",<br>
line 332, in _call_chain<br>
result = func(*args)<br>
File "C:\Python26\lib\site-packages\mechanize\_urllib2_fork.py",<br>
line 1171, in https_open<br>
return self.do_open(conn_factory, req)<br>
File "C:\Python26\lib\site-packages\gmail_transport.py", line 145, in do_open<br>
return ClientCookie.HTTPSHandler.do_open(self,<br>
ProxyHTTPSConnection.new_auth(self.proxy, self.proxy_user,<br>
self.proxy_passwd), req)<br>
File "C:\Python26\lib\site-packages\mechanize\_urllib2_fork.py",<br>
line 1118, in do_open<br>
raise URLError(err)<br>
urllib2.URLError: <urlopen error Tunnel connection failed: 407 Proxy<br>
Authentication Required ( The ISA Server requires authorization to<br>
fulfill the request. Access to the Web Proxy filter is denied. )><br>
<br>
<br>
What am I doing wrong? Is there anything I should do differently? Or<br>
anything else I should try?<br>
<br>
Thank you for your help, any suggestion is highly appreciated.<br>
<br>
<br>
Andrea.<br>
<br>
"Imagination Is The Only Weapon In The War Against Reality."<br>
<a href="http://xoomer.alice.it/infinity77/" target="_blank">http://xoomer.alice.it/infinity77/</a><br>
<br>
==> Never *EVER* use RemovalGroup for your house removal. You'll<br>
regret it forever.<br>
<a href="http://thedoomedcity.blogspot.com/2010/03/removal-group-nightmare.html" target="_blank">http://thedoomedcity.blogspot.com/2010/03/removal-group-nightmare.html</a> <==<br>
<font color="#888888">--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
</font></blockquote></div><br>