{"id":2088,"date":"2015-03-02T22:07:15","date_gmt":"2015-03-02T18:07:15","guid":{"rendered":"http:\/\/sandalov.org\/blog\/?p=2088"},"modified":"2015-03-02T22:07:15","modified_gmt":"2015-03-02T18:07:15","slug":"imapsmtp-via-https-proxy","status":"publish","type":"post","link":"https:\/\/sandalov.org\/blog\/2088\/","title":{"rendered":"IMAP\/SMTP via HTTPS Proxy"},"content":{"rendered":"<div class=\"2d836d85a73757df15d0de19d7bef594\" data-index=\"1\" style=\"float: none; margin:10px 0 10px 0; text-align:center;\">\n<script type=\"text\/javascript\"><!--\r\ngoogle_ad_client = \"ca-pub-2287684400845931\";\r\n\/* valerymorozov *\/\r\ngoogle_ad_slot = \"5606708872\";\r\ngoogle_ad_width = 728;\r\ngoogle_ad_height = 90;\r\n\/\/-->\r\n<\/script>\r\n<script type=\"text\/javascript\"\r\nsrc=\"http:\/\/pagead2.googlesyndication.com\/pagead\/show_ads.js\">\r\n<\/script>\n<\/div>\n<p>In some places internet access is provided via proxy. Some proxies block imap and smtp and allow only ports 80 and 443. If your email client doesn&#8217;t have proxy configuration (like my beloved <a href=\"http:\/\/en.wikipedia.org\/wiki\/Mutt_%28email_client%29\" target=\"_blank\">Mutt<\/a>), then you need to forward imap and smtp by hand. If the proxy you are behind supports https this means you can bypass it via <a href=\"http:\/\/en.wikipedia.org\/wiki\/HTTP_tunnel\" target=\"_blank\">https connect<\/a> method.<\/p>\n<p>To demonstrate that I&#8217;ll install <a href=\"http:\/\/proxytunnel.sourceforge.net\/\" target=\"_blank\">Proxytunnel<\/a> on my Ubuntu 14.04. After that I am creating 2 upstart scripts that launch proxy-tunnel daemons from proxy to imap\/smtp (in this example to gmail&#8217;s servers). The daemons are started on system&#8217;s boot and are listening for imap connections on localhost:993 and smtp on localhost:993. For simplicity I&#8217;m adding my mail servers to hosts file, without that I would need to reconfigure my mail client to use localhost instead of *.gmail.com.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo apt-get install proxytunnel\r\nsudo touch \/etc\/init\/tunnel-imap.conf \/etc\/init\/tunnel-smtp.conf\r\nsudo chmod 644 \/etc\/init\/tunnel-imap.conf \/etc\/init\/tunnel-smtp.conf\r\n<\/pre>\n<p>\/etc\/init\/tunnel-imap.conf:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# proxy daemon for Gmail\r\n\r\ndescription     &quot;proxy daemon for Gmail imap&quot;\r\n\r\nstart on runlevel &#x5B;2345]\r\n\r\nexpect fork\r\nrespawn\r\nrespawn limit 10 5\r\n\r\nexec    \/usr\/bin\/proxytunnel -p proxy.com:80 -d imap.gmail.com:993 -a 993\r\n<\/pre>\n<p>\/etc\/init\/tunnel-smtp.conf:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n# proxy daemon for Gmail\r\n\r\ndescription     &quot;proxy daemon for Gmail smtp&quot;\r\n\r\nstart on runlevel &#x5B;2345]\r\n\r\nexpect fork\r\nrespawn\r\nrespawn limit 10 5\r\n\r\nexec    \/usr\/bin\/proxytunnel -p proxy.com:80 -d smtp.gmail.com:587 -a 587\r\n<\/pre>\n<p>add to \/etc\/hosts:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n127.0.1.1   imap.gmail.com\r\n127.0.1.1   smtp.gmail.com\r\n<\/pre>\n<p>Reboot<\/p>\n<p>Tip 1: if you are an Upstart guru, you can make 1 upstart script instead of 2 \ud83d\ude42<br \/>\nTip 2: one can use iptables instead of hosts <\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\"># iptables -t nat -A OUTPUT -d smtp.gmail.com -j DNAT --to-destination 127.0.1.1<\/pre>\n<p>Tip 3: there is a Python <a href=\"http:\/\/zderadicka.eu\/accessing-imapsmtp-via-https-proxy\/\" target=\"_blank\">script<\/a> that does the same job (didn&#8217;t test it)<\/p>\n<div class=\"2d836d85a73757df15d0de19d7bef594\" data-index=\"1\" style=\"float: none; margin:10px 0 10px 0; text-align:center;\">\n<script type=\"text\/javascript\"><!--\r\ngoogle_ad_client = \"ca-pub-2287684400845931\";\r\n\/* valerymorozov *\/\r\ngoogle_ad_slot = \"5606708872\";\r\ngoogle_ad_width = 728;\r\ngoogle_ad_height = 90;\r\n\/\/-->\r\n<\/script>\r\n<script type=\"text\/javascript\"\r\nsrc=\"http:\/\/pagead2.googlesyndication.com\/pagead\/show_ads.js\">\r\n<\/script>\n<\/div>\n\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>In some places internet access is provided via proxy. Some proxies block imap and smtp and allow only ports 80 and 443. If your email client doesn&#8217;t have proxy configuration (like my beloved Mutt), then you need to forward imap and smtp by hand. If the proxy you are behind &hellip; <a class=\"continue-reading-link\" href=\"https:\/\/sandalov.org\/blog\/2088\/\"> Continue reading <span class=\"meta-nav\">&rarr; <\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[118,1],"tags":[370,262,97,368,338,372,369,371,379],"class_list":["post-2088","post","type-post","status-publish","format-standard","hentry","category-linux-2","category-unsorted","tag-corporate-proxy","tag-email","tag-gmail","tag-imap","tag-proxy","tag-proxytunnel","tag-smtp","tag-tunnel","tag-ubuntu"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sandalov.org\/blog\/wp-json\/wp\/v2\/posts\/2088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sandalov.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sandalov.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sandalov.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sandalov.org\/blog\/wp-json\/wp\/v2\/comments?post=2088"}],"version-history":[{"count":19,"href":"https:\/\/sandalov.org\/blog\/wp-json\/wp\/v2\/posts\/2088\/revisions"}],"predecessor-version":[{"id":2107,"href":"https:\/\/sandalov.org\/blog\/wp-json\/wp\/v2\/posts\/2088\/revisions\/2107"}],"wp:attachment":[{"href":"https:\/\/sandalov.org\/blog\/wp-json\/wp\/v2\/media?parent=2088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sandalov.org\/blog\/wp-json\/wp\/v2\/categories?post=2088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sandalov.org\/blog\/wp-json\/wp\/v2\/tags?post=2088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}