On Fri, Jul 2, 2021 at 12:16 PM Ray Satiro via curl-library <curl-library@cool.haxx.se> wrote: > > On 6/29/2021 12:33 AM, Hongyi Zhao via curl-library wrote: > > On Tue, Jun 29, 2021 at 5:55 AM Daniel Stenberg <dan...@haxx.se> wrote: > > On Sat, 26 Jun 2021, Hongyi Zhao via curl-library wrote: > > I noticed that libcurl, hence pycurl supports IMAP and IMAPS, so I want to > know if I can use it to retrieve/remove emails from my Gmail account? > > Yes you can. > > Jay once wrote ShowGmailFolders.c for example: > > https://gist.github.com/jay/a43724c98220de85d020 > > Thank you for this wonderful code snippet. But for quick testing, I > try the following command based on the notes at > <http://cweiske.de/tagebuch/curl-imap-noauth.htm>, but failed: > > $ curl -x socks5h://127.0.0.1:18888 -v -k --ssl > imaps://imap.gmail.com:993 --user "username:passwd" > * Trying 127.0.0.1:18888... > * TCP_NODELAY set > * SOCKS5 communication to imap.gmail.com:993 > * SOCKS5 connect to imap.gmail.com:993 (remotely resolved) > * SOCKS5 request granted. > * Connected to 127.0.0.1 (127.0.0.1) port 18888 (#0) > * successfully set certificate verify locations: > * CAfile: /etc/ssl/certs/ca-certificates.crt > CApath: /etc/ssl/certs > * TLSv1.3 (OUT), TLS handshake, Client hello (1): > * OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to imap.gmail.com:993 > * Closing connection 0 > curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to > imap.gmail.com:993 > > > syscall error is probably your proxy.
Exactly, you're right. The problem is caused by the socks5 proxy supplied by HAProxy on local side doesn't enable the sticky-session option. I use another socks5 proxy exposed from HAProxy with the sticky-session option, and it does the trick: $ curl -x socks5h://127.0.0.1:18889 --ssl imaps://imap.gmail.com:993 --user "hongyi.zhao:passwd" * LIST (\HasNoChildren) "/" "INBOX" * LIST (\HasNoChildren) "/" "Junk" * LIST (\HasChildren \Noselect) "/" "[Gmail]" * LIST (\All \HasNoChildren) "/" "[Gmail]/All Mail" * LIST (\Drafts \HasNoChildren) "/" "[Gmail]/Drafts" * LIST (\HasNoChildren \Important) "/" "[Gmail]/Important" * LIST (\HasNoChildren \Sent) "/" "[Gmail]/Sent Mail" * LIST (\HasNoChildren \Junk) "/" "[Gmail]/Spam" * LIST (\Flagged \HasNoChildren) "/" "[Gmail]/Starred" * LIST (\HasNoChildren \Trash) "/" "[Gmail]/Trash" * LIST (\HasNoChildren) "/" "&XeVPXJCuTvY-" * LIST (\HasNoChildren) "/" "&ZTZjbg-" * LIST (\HasNoChildren) "/" "&ZcWITHb4UXM-" * LIST (\HasNoChildren) "/" "&ecFOupCuTvY-" > I can connect fine. Note you will have to enable "less secure app access" [1] > on your google account to use the gmail username/password. Yes, I've enabled this for doing the above testing. > There is a way to do it with oauth2 instead. I don't think I've ever had to > do that though and I don't think we have an example for it. > > > [1]: https://myaccount.google.com/lesssecureapps > > > > ------------------------------------------------------------------- > Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library > Etiquette: https://curl.se/mail/etiquette.html Regards -- Assoc. Prof. Hongyi Zhao <hongyi.z...@gmail.com> Theory and Simulation of Materials Hebei Vocational University of Technology and Engineering NO. 552 North Gangtie Road, Xingtai, China ------------------------------------------------------------------- Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html