Postfix — настройка relayhost, отдельный для каждого домена

Thank you for reading this post, don't forget to subscribe!

Появи­лась необ­хо­ди­мость настро­ить отправ­ку почты с одно­го поч­то­во­го сер­ве­ра postfix через дру­гой. При­чем на сер­ве­ре было несколь­ко доме­нов, для каж­до­го нужен был свой внеш­ний поч­то­вый сер­вер для пере­сыл­ки почты.

В общем слу­чае про­бле­ма пере­сыл­ки почты реша­ет­ся очень про­сто. Если вы хоти­те, что­бы отправ­ка всей почты шла через дру­гой smtp сер­вер, доста­точ­но ука­зать адрес это­го сер­ве­ра в пара­мет­ре postfix.

После это­го вся исхо­дя­щая поч­та будет отправ­лять­ся на сер­вер mailsrv.mymail.ru. Мне такой вари­ант не под­хо­дил. Я хотел поте­сти­ро­вать proxmox mail gateway на рабо­чем сер­ве­ре, но толь­ко на одном домене. Для это­го мне надо было почту одно­го кон­крет­но­го доме­на напра­вить на отправ­ку через новый поч­то­вый шлюз.

Поче­му-то в интер­не­те нашел мно­го сове­тов настро­ить пере­сыл­ку почты через transport_maps. Я поте­сти­ро­вал этот пара­метр, но он не для мое­го слу­чая. С помо­щью transport_maps вы може­те пере­сы­лать всю вхо­дя­щую почту на какой-то дру­гой сер­вер. Мне же нуж­но было не пере­сы­лать вхо­дя­щую, а настро­ить имен­но отправ­ку сооб­ще­ний, то есть исхо­дя­щую почту.

Что­бы сде­лать то, что мне надо, необ­хо­дим пара­метр — sender_dependent_relayhost_maps. Добав­ля­ем его в кон­фиг в таком виде:

Содер­жи­мое фай­ла relayhost_map.

Созда­ем индек­си­ро­ван­ную базу из это­го файла:

После это­го мож­но пере­за­пус­кать postfix и про­ве­рять. В дан­ном слу­чае я отпра­вил всю почту с доме­на prox.mymail.ru через внеш­ний smtp сер­вер 10.1.3.15 на 26-й порт. Его исполь­зу­ет proxmox mail gateway для пере­сыл­ки почты. Все осталь­ные доме­ны как отправ­ля­ли почту сами локаль­но, так и будут отправлять.

в целом не пло­хо немно­го услож­ня­ет­ся струк­ту­ра поч­то­во­го сер­ве­ра, так как надо раз­де­лять smtp служ­бы и imap по раз­ным серверам,