能否为 postfix 设置代理, How?

2016-10-01 10:28:57 +08:00
 Pangdouya
在一台国内的机器上用 postfix 通过 gmial 网关发邮件,发送总是失败。

当然连接 vpn 后发送邮件是没有问题的。

问题是如果不使用 vpn ,有什么办法设置代理吗?

谢谢!
3558 次点击
所在节点    Linux
23 条回复
Pangdouya
2016-10-01 10:34:04 +08:00
配置参考了 https://www.linode.com/docs/email/postfix/postfix-smtp-debian7
中 “ Configuring the Relay Server ”这一节。
lygmqkl
2016-10-01 11:18:11 +08:00
我用 postfix + gox gmail 在 Mac 下没问题
lygmqkl
2016-10-01 11:22:27 +08:00
不过 postfix 比较霸道 有时候开 3 个代理软件他直接横在最下层
Pangdouya
2016-10-01 11:23:11 +08:00
@lygmqkl gox gmail 是什么?能否具体说一下?
lygmqkl
2016-10-01 11:25:00 +08:00
@Pangdouya 在外旅游回去发给你
Pangdouya
2016-10-01 11:29:56 +08:00
@lygmqkl 好,谢谢。
julyclyde
2016-10-01 18:56:37 +08:00
transport_maps 表
不过你打算用哪个 transport 来发呢?似乎没法表达“通过 VPN ”这个意思
Pangdouya
2016-10-02 14:33:41 +08:00
@julyclyde 我说通过 VPN 连接的意思是,机器连接上 vpn 后,是可以通过 gmail 的 smtp 服务器发邮件。

国内 gmail 的 smtp 服务器基本上是不可用的状态,至少我这里是这样的。

所以才想问是否可能有代理的方式做到。
julyclyde
2016-10-02 15:52:17 +08:00
@Pangdouya 首先你可能分不清 submission 和 MX 两种 smtp 服务的区别。其次,你可以开 vpn 但不放“所有”流量过去,只放个别 IP 过去,然后把 gmail 列入
Pangdouya
2016-10-05 09:43:47 +08:00
@julyclyde 是的,我不太清楚这两种服务的区别,还请指教。

第二点我大概知道怎么做,要做策略路由,还得抗 DNS 污染,比较麻烦,所以就不是太想搞。
Pangdouya
2016-10-05 09:46:19 +08:00
@julyclyde 我其实主要想问的是不是有通过代理达到我想要的。比如之前收邮件也是也很麻烦,我收邮件用是 mbsync ,但是有 proxychains 这个工具就简单多了,直接一条命令搞定了。
julyclyde
2016-10-05 13:58:12 +08:00
@Pangdouya 能一条命令搞定,那就好说了。你设置一下 transport_maps ,把 gmail 的域名单独列出来用这个命令发
Pangdouya
2016-10-05 16:05:57 +08:00
@julyclyde 能说的具体一点吗?
julyclyde
2016-10-05 16:46:12 +08:00
@Pangdouya 别太懒,我连要用什么都告诉你了,你应该自己去查一下怎么用它
Pangdouya
2016-10-05 22:59:47 +08:00
@julyclyde 查过 transport_map 的用法了,根据我的理解及需求设置 transport_maps 和 设置 relay_host 的作用是一样的。所以,你的方案并不解决我的问题。

因为我的问题在于这里,见日志。

Oct 5 22:53:36 x301 postfix/qmgr[27162]: 496A184528: from=<*@gmail.com>, size=401, nrcpt=1 (queue active)
Oct 5 22:53:36 x301 postfix/smtp[27167]: connect to smtp.gmail.com[2404:6800:4008:c02::6d]:587: Network is unreachable
Oct 5 22:54:06 x301 postfix/smtp[27167]: connect to smtp.gmail.com[74.125.204.109]:587: Connection timed out
Oct 5 22:54:36 x301 postfix/smtp[27167]: connect to smtp.gmail.com[74.125.204.108]:587: Connection timed out
Oct 5 22:54:36 x301 postfix/smtp[27167]: 496A184528: to=<*@*>, relay=none, delay=372, delays=311/0.18/60/0, dsn=4.4.1, status=deferred (connect to smtp.gmail.com[74.125.204.108]:587: Connection timed out)
julyclyde
2016-10-05 23:52:54 +08:00
@Pangdouya 设置 relay_host 是把“所有邮件都”发到指定的 SMTP 服务器去。 transport_maps 是把指定的邮件用指定的方法发出去。这俩怎么可能一样呢?你的文档阅读理解能力比较堪忧啊
Pangdouya
2016-10-06 10:47:45 +08:00
@julyclyde 你说的很对。但是请注意我的原话,”根据我的理解与需求“。

我的需求就是把所有的邮件通过 gmail smtp 服务器发出,而在这个意义下两者的效果对来说是一样的。

所以,我说你的方案对我来说并没有帮助。
julyclyde
2016-10-06 19:15:19 +08:00
@Pangdouya 我看了原话了,我的答案是没错的。你自己说“有 proxychains 这个工具就简单多了,直接一条命令搞定了”,那你可以把这条命令做成一个 transport ,然后把“所有”邮件都用这个 transport 发出去。说到底还是你懒,不愿意去读文档
Pangdouya
2016-10-06 20:58:28 +08:00
@julyclyde 我觉得跟你的讨论可以终止了。
julyclyde
2016-10-06 22:41:04 +08:00
哈哈哈哈
那你得不到别的答案了
邮件服务器虽然不难,但也没几个人真正研究过
我敢说本论坛不会有人比我更懂 postfix

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/310124

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX