V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Pangdouya
V2EX  ›  Linux

能否为 postfix 设置代理, How?

  •  
  •   Pangdouya · 2016-10-01 10:28:57 +08:00 · 3595 次点击
    这是一个创建于 3011 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在一台国内的机器上用 postfix 通过 gmial 网关发邮件,发送总是失败。

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

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

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

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

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

    第二点我大概知道怎么做,要做策略路由,还得抗 DNS 污染,比较麻烦,所以就不是太想搞。
    Pangdouya
        11
    Pangdouya  
    OP
       2016-10-05 09:46:19 +08:00
    @julyclyde 我其实主要想问的是不是有通过代理达到我想要的。比如之前收邮件也是也很麻烦,我收邮件用是 mbsync ,但是有 proxychains 这个工具就简单多了,直接一条命令搞定了。
    julyclyde
        12
    julyclyde  
       2016-10-05 13:58:12 +08:00
    @Pangdouya 能一条命令搞定,那就好说了。你设置一下 transport_maps ,把 gmail 的域名单独列出来用这个命令发
    Pangdouya
        13
    Pangdouya  
    OP
       2016-10-05 16:05:57 +08:00
    @julyclyde 能说的具体一点吗?
    julyclyde
        14
    julyclyde  
       2016-10-05 16:46:12 +08:00
    @Pangdouya 别太懒,我连要用什么都告诉你了,你应该自己去查一下怎么用它
    Pangdouya
        15
    Pangdouya  
    OP
       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
        16
    julyclyde  
       2016-10-05 23:52:54 +08:00
    @Pangdouya 设置 relay_host 是把“所有邮件都”发到指定的 SMTP 服务器去。 transport_maps 是把指定的邮件用指定的方法发出去。这俩怎么可能一样呢?你的文档阅读理解能力比较堪忧啊
    Pangdouya
        17
    Pangdouya  
    OP
       2016-10-06 10:47:45 +08:00
    @julyclyde 你说的很对。但是请注意我的原话,”根据我的理解与需求“。

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

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

    http://serverfault.com/questions/363605/how-can-i-route-postfix-through-a-socks-proxy

    应该没啥简单的方法,直接给 smtp 进程设置代理了.

    理论上应该可以通过修改 master.cf 添加自己的 external delivery method
    搞定,没实践过,只能当是提个建议了
    is
        22
    is  
       2016-10-07 18:33:22 +08:00
    Pangdouya
        23
    Pangdouya  
    OP
       2016-10-07 21:13:42 +08:00
    @is 非常感谢! Really helpful.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2900 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:39 · PVG 21:39 · LAX 05:39 · JFK 08:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.