目前邮件处理工作增加,想转到emacs中进行。最麻烦的地方就在于设置代理了。目前卡在了proxychain上。
环境说明:我的代理为 socks5://127.0.0.1:1086
我可以成功执行 proxychains4 curl www.google.com
,但是在执行 proxychains4 mbsync --all
时会报错 Socket error: secure connect to imap.gmail.com (74.125.203.108:993): Undefined error: 0
没找到原因,希望得到大家的帮助
proxychains配置
strict_chain proxy_dns remote_dns_subnet 224 tcp_read_time_out 15000 tcp_connect_time_out 8000 localnet 127.0.0.0/255.0.0.0 quiet_mode [ProxyList] socks5 127.0.0.1 1086
mbsync 相关配置
IMAPAccount gmail Host imap.gmail.com SSLType IMAPS SSLVersions SSLv3 CertificateFile /opt/local/share/curl/curl-ca-bundle.crt
另外记录我所了解的方案,希望对有类似需求的朋友有所帮助。
-
收邮件:mbsync 或 offlineimap
- offlineimap 因为offlineimap原生支持代理(设置proxy = SOCKS5:127.0.0.1:1086),我先试用的offlineimap,然而,它必须在python2下使用(参见 IMAP4 protocol error: program error: <class ‘TypeError’> - can’t use a bytes pattern on a string-like object · Issue #607 · OfflineIMAP/offlineimap),用pyenv设置好python2环境,又出现了
tuple index out of range
错误 (与这里描述的问题一致)……看来doom default选择mbsync不是没有道理的,因此转战mbsync - mbsync 使用没有问题,但是原生不支持代理,需要借助外部工具
- torsocks 开发者推荐的工具(Isync / Thread: Make mbsync work behind corporate proxy),但是网上资料较少,加上不太熟悉tor的原理,目前没有成功运行
ssh -q socks5://127.0.0.1:1086 openssl s_client -connect imap.gmail.com:143 -quiet
也是开发者提出的方案之一,但是在我的机子上运行不是很稳定,需要进一步验证- 端口转发 @Chris 提出的方案(目前还有办法在Emacs里收Gmail的邮件吗? - Emacs-general - Emacs China),看反馈不少坛友成功实现,但是我平时用的ShadowsocksX-NG, 似乎没有对应的配置文件给
ss-tunnel -c
- proxychains 坛友的推荐,感觉是目前最流行的方案。
- offlineimap 因为offlineimap原生支持代理(设置proxy = SOCKS5:127.0.0.1:1086),我先试用的offlineimap,然而,它必须在python2下使用(参见 IMAP4 protocol error: program error: <class ‘TypeError’> - can’t use a bytes pattern on a string-like object · Issue #607 · OfflineIMAP/offlineimap),用pyenv设置好python2环境,又出现了
-
发邮件:好像都是用的emacs的smtpmail,按照我的理解,应该要么用proxychains从终端启动emacs,要么在emacs中设置socks代理(http代理应该不行,因为发邮件不走http)。等我把收邮件配好了再来补充发邮件的信息