Q1: условия воздействуют на строки, "верные" / "да" или "нет" / "ложь", таким образом, необходимо заставить конечный результат из расширений быть одной из тех строк. Аналогично, ${if
не возвращает абсолютный TRUE или FALSE, он оценивает оператор и затем возвращает строки на основе истины оператора (Вы оставили те строки). Вот некоторый пример:
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
может возвратить любое значение, но истина и ложь является самой полезной для Вас здесь. Anyhoo, на основе условия, которое Вы перечисляете, я изменил бы его на это:
condition = ${if eq {$received_for}{test@mydomain.com}{yes}{no}}
Править: Я думаю, что более новые версии exim не могут потребовать дополнительного, "если - верный" и, "если - ложные" части, таким образом, я могу рявкать неправильное дерево здесь. Я думаю, что $received_for является, вероятно, на самом деле не переменной, которую Вы хотите, я сомневаюсь, что это содержит что-либо в то время, когда Вы выполняете тот маршрутизатор. Вместо этого попробуйте это:
condition = ${if eqi{$local_part@$domain}{test@mydomain.com}}
Q2: существует несколько способов решить эту проблему, но мне нравится использовать $ {расширьтесь: оператор:
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.}
Обратитесь в хостинговую компанию. Если вы настроили VPS из дома и не добавили свой офис в качестве места подключения, то определенно должен быть брандмауэр, блокирующий вас.
Если это брандмауэр, то вы получите сообщение «Время ожидания соединения истекло» или «Соединение отклонено». В противном случае ошибка SQL скажет, почему вы не можете подключиться. Обычно это происходит из-за того, что у пользователя есть ограниченный список хостов, а IP-адрес вашего офиса отсутствует в списке, поэтому он выдает ошибку входа в систему.