Я использую свой ноутбук на работе в беспроводных и проводных сетях, дома в беспроводной сети и в других местах (например, на конференциях, в домах друзей и т. Д.).
На работе я бы хотел, чтобы postfix использовал корпоративный почтовый сервер для маршрутизации писем. Дома я бы хотел использовать мой личный почтовый сервер для маршрутизации писем. Когда в другом месте я бы хотел, чтобы ноутбук пытался доставлять электронную почту в обычном режиме smtp.
Возможно ли это, используя только постфикс? Мне нужно что-то еще (например, Ламсон http://lamsonproject.org/, или сценарии, которые динамически исправляют мою конфигурацию постфикса), когда я хочу выполнить маршрутизацию, которая зависит от моего текущего местоположения?
Вы можете (неправильно) использовать sender_dependent_relayhost_maps вариант конфигурации Postfix, имея две (или более) учетные записи пользователей и используя их в соответствии с сетевой средой, в которой вы находитесь. Это, конечно, требует ручного вмешательства для изменения учетной записи пользователя в вашем MUA, но поскольку большинство почтовых клиентов поддерживают несколько учетных записей, это не должно это не будет большой проблемой.
Другая возможность - использовать ловушки, которые ваша операционная система может предложить для работы в сети. Большинство дистрибутивов Linux имеют возможность запускать пользовательские сценарии при подключении к сети (и отключении). Вы можете написать небольшой скрипт, который проверяет ESSID точки доступа, к которой вы подключены, и устанавливает Relayhost вариант конфигурации (например, использование postconf
) для вашей установки Postfix.
Я думаю, вам следует использовать три разных конфигурации и позволить сценариям сетевой инициализации (ответ se joschi) «установить» подходящий, в зависимости от вашего местоположения.
Таким образом, вы можете иметь правильные значения для $mydomain
и все остальное в зависимости от вашего конкретного местонахождения. Я думаю, что в противном случае ваши исходящие письма будут слишком некрасивыми (спамом).
Используйте сценарий, чтобы определить, в какой сети вы находитесь, во время (или вскоре после) инициализации, которая запускается postconf -e relay_host=foo
где «foo» - правильное имя почтового сервера для сети, в которой вы находитесь.