我使用笔记本电脑工作在无线和有线networking,家中无线networking以及其他各种场所(如会议,朋友聚会等)。
在工作时,我希望postfix使用corportate邮件服务器来发送邮件。 在家时,我希望使用我的个人邮件服务器路由电子邮件。 在其他地方,我想让笔记本电脑尝试以普通的smtp方式发送邮件。
这可能只使用postfix? 当我想根据当前位置进行路由select时,是否需要其他的function(例如Lamson http://lamsonproject.org/ ,或dynamic修补我的后缀configuration的脚本)?
您可以(错误)使用Postfix的sender_dependent_relayhost_mapsconfiguration选项,具有两个(或更多)用户帐户,并根据您所在的networking环境使用它们。这当然需要手动干预来更改MUA中的用户帐户,但因为大多数邮件客户端支持多个身份,这不应该是一个大问题。
另一种可能性是使用您的操作系统可能为networking提供的钩子。 大多数Linux发行版都可以在networking连接(和断开连接)上运行自定义脚本。 你可以写一个小脚本来检查你连接的接入点的ESSID,并为你的Postfix安装设置relayhostconfiguration选项(例如使用postconf )。
我想你应该使用三种不同的configuration,并让networking初始化脚本(se joschi的答案)根据您的位置“安装”适当的一个。
这样你可以有正确的价值$mydomain和其他一切取决于你的具体去向。 我觉得你的外发邮件太丑了(垃圾邮件)的可能性相当大。
使用一个脚本来检测你在运行postconf -e relay_host=foo过程中(或不久之后)所在的networking,其中“foo”是你正在使用的networking的正确邮件服务器名称。