Я пытаюсь отправить уведомление отправителю сообщения, когда сообщение отправляется ровно на один адрес в локальном домене (test@mydomain.com).
Q1: Каким будет синтаксис условия (приведенное выше не работает)? :
notify_reply:
driver=accept
domains = +local_domains
senders = ! ^.*-request@.*:\
! ^bounce-.*@.*:\
! ^.*-bounce@.*:\
! ^owner-.*@.*:\
! ^postmaster@.*:\
! ^webmaster@.*:\
! ^listmaster@.*:\
! ^mailer-daemon@.*:\
! ^root@.*:\
! ^noreply@.*
condition = ${if eq {$received_for}{test@mydomain.com}}
no_expn
transport=notify_transport
unseen
no_verify
Q2: Как написать многострочную строку в конфигурационном файле для "текста"? :
notify_transport:
driver=autoreply
from=info@mydomain.com
to=$sender_address
subject=Your mail for
text="Please resend your messasge to
info@mydomain.com
This is a temporary modification."
В1: условия работают со строками «истина» / «да» или «нет» / «ложь», поэтому вы должны сделать конечный результат ваших расширений одной из этих строк. Точно так же ${if
не возвращает абсолютную истину или ложь, он оценивает утверждение, а затем возвращает строки на основе истинности утверждения (вы оставили эти строки отключенными). Вот пример:
g3 0 /home/jj33 > exim -be
> ${if eq{string}{string}{true}{false}}
true
> ${if eq{string}{STRING}{true}{false}}
false
> ${if eqi{string}{STRING}{true}{false}}
true
>
Важно отметить, что строки «истина» и «ложь» произвольны, вы ${if
может возвращать любое значение, но наиболее полезны здесь true и false. Anyhoo, в зависимости от перечисленного вами условия, я бы изменил его на это:
condition = ${if eq {$received_for}{test@mydomain.com}{yes}{no}}
РЕДАКТИРОВАТЬ: Я думаю, что более новые версии exim могут не требовать дополнительных частей «if-true» и «if-false», поэтому я могу лаять здесь не на то дерево. Я думаю, что $ receive_for, вероятно, на самом деле не та переменная, которую вы хотите, я сомневаюсь, что она что-то содержит в то время, когда вы запускаете этот маршрутизатор. Вместо этого попробуйте следующее:
condition = ${if eqi{$local_part@$domain}{test@mydomain.com}}
Q2: Есть несколько способов решить эту проблему, но мне нравится использовать оператор $ {expand::
g3 0 /home/jj33 > exim -be
> ${expand:line1\nline2}
line1
line2
Итак, в вашем случае это будет:
text=${expand:Please resend your messasge to\n\ninfo@mydomain.com\n\nThis is a temporary modification.}