MailFrom ~ *@domen1.ru
RCPTTO S" c:\Eserv3\MyConf\MyLists\aliasto.txt" IsInFile AND
[IF]
FIELD2 AddRcpt
FIELD1 DelRcpt
\EOF
[THEN]
файл aliasto.txt имеет следующую структуру:
"EMAIL";"NEWEMAIL"
"user1@domainto.ru";"user1@domaintonew.ru"
"user2@domainto.ru";"user2@domaintonew.ru"
"user3@domainto.ru";"user3@domaintonew.ru"
Происходит вот что. Если письмо отправляется по одному адресу из списка, замена происходит нормально.
Но если письмо отправляется всем сразу, то замена просходит только для последнего адреса в списке.
Думаю это неправильно. Может я где-то ошибся?

И все-таки считаю, что MContent работает неправильно. Он должен срабатывать на каждый адрес в списке.
Приведённый код работает по написанному. Чтобы работало по-другому, нужен другой код. Малость посложнее. Наверное, дополнительный плагин, вдруг ещё где пригодится, не только в MContent. Собственно, от самого MContent в том коде ничего нет.
И не потому, что это сверх сложная задача, алгоритм ее примерно представляю и он достаточно прост.
Но для его реализации требуется более глубокое знание Форта.
\ Проходим по индивидуальным расширенным правилам для каждой MIME части ( если они есть )
Значит, аналогично еще нужно
\ Проходим по индивидуальным расширенным правилам для каждого получателя ( RCPTTO )
.... ForEachRcptto: smtp\customrules\CustomRcptto
Похоже?
MailFrom ~ *@domen1.ru | ReplaceRcpttoByList: aliasto.txt
Может, это и проще...
Так или иначе — специальный итератор надо делать: или по списку uRCPTLIST (чтобы итерировал по копии), или по списку aliasto.txt (вместо IsInFile). Об оптимизации я бы тут задумался, лишь когда скорости будет не хватать
Как думаете?
Надо попробовать.
В принципе отвергание меня устроило бы, но есть одно но. Если список получателей состоит из разрешенных адресов и алиасов, на которые наложено ограничение — отвергается письмо вообще. Это меня не устраивает.
Вообще списку алиасов нехватает флагового поля (примерно как в черных списках урлов), в которое можно было бы вписать условие. Если результат ноль — алиас срабатывает, если не ноль — игнорируется.
Кстати, такое поле не помешало бы для списков управления доступом почтового сервера (ToEmailBlackList.txt и т.п.).
Положите куда-нибудь, подключите в OnStartupPlugins и пользуйте. Краткое описание прямо в index.f.
Большое спаисбо. Все работает как надо.
Будете в Калининграде — с меня пиво.