Есте две организации связанные между собой сетью. В каждой из них свой потовый сервер. Между ними настроен форвард друг на друга.
В одной есть ограничение MaxMessageSize, а в другой никаких ограничений нет.
Задача. Как отключить или обойти проверку на MaxMessageSize если письмо принимается с сервера второй организации и если отправляется на сервер второй организации?
У меня мысль вставить код в OnMessageEnd перед проверкой на размер, только вот пока затрудняюсь какой. Можно ли использовать по типу MContenta?

P.S. не забудьте, что если правите непосредственно в acsmtp\conf\ то этот файл правил будет заменен при обновлении версии, чтобы сохранить свой, положите его в тот же каталог, только поддерева myconf (все поддерево нужно создать самим)
Для справки: слово 0= — это инверсия логической операции?
Кстати, OR и AND — не логические, а побитовые, это надо учитывать при конструировании сложных выражений.
Еще вопрос по теме. Я тут узнал, что на втором сервере планируется обслуживать еще один почтовый домен.
Возможно ли брать маски доменов, отправка писем на которые не проверяется на размер, из файла?
Результат — TRUE (-1) / FALSE (0).
Ага. Значит в файле MaxMessageSizeWhiteList.txt я должен прописать что-то вроде:
domen1.ru domen2.ru
без имени ящика и собаки?
Кстати. Мы кажется забыли про PeerIP= 127.0.0.1
Если по какой-то причине второй сервер не примет наш большой файл, то он вернется и застрянет в 127.0.0.1/25.
Такая ситуация возможна. Поэтому я добавил PeerIP= 127.0.0.1 в условие проверки
Всем спасибо.
RCPTTO GetDomainFromEmail SMTP[MaxMSRcptTO] IsInFile MESSAGE-SIZE FIELD2 S@ > AND
[IF]
DeleteCurrentFile " 552 ERR too large message size {MESSAGE-SIZE} for {FIELD1} domain {RCPTTO}. Для домена {FIELD2} письмо слишком большое!{CRLF}" SMTP_FPUTS \EOF
[THEN]
В файле соответственно:
Domain;MMsize mail.ru;9800000 bk.ru;9800000 inbox.ru;9800000 list.ru;9800000 yandex.ru;9800000 narod.ru;9800000 ya.ru;9800000
В логе получается:
12:19:50; 868; 192.168.50.92; MAIL FROM: <aaaaa@pantv.ru>
12:19:50; 868; 192.168.50.92; 250 aaaaa@pantv.ru OK, my domain
12:19:50; 868; 192.168.50.92; RCPT TO: <bbbbb@pantv.ru>
12:19:50; 868; 192.168.50.92; 250 bbbbb@pantv.ru OK, my domain, user bbbbb exists
12:19:50; 868; 192.168.50.92; DATA
12:19:50; 868; 192.168.50.92; 354 send the mail data, end with .
12:19:50; 868; 192.168.50.92; 552 ERR too large message size 1473 for ya.ru domain. Для домена 9800000 письмо слишком большое!
12:19:50; 868; 192.168.50.92; QUIT
12:19:50; 868; 192.168.50.92; 221 Goodbye.
Во первых не должно было примениться (домена в списке нет)
Во вторых размер письма явно меньше заданного
Где поправить?
S@ — это раскрытие макросов в строке, возвращает addr u. А вам надо из строки сделать число.
И в сообщении об ошибке замените FIELD2 на FIELD1.
Я бы вообще сделал так:
Не будет сравнения с неизвестно чем (скорее всего, с нулём), если в списке не найдено.
FIELD2 там для отладки стояло (посмотреть с чем сравнило)
Еще раз спасибо.