Как я могу отфильтровать спам, отправленный определённому пользователю с произвольным именем на postfix?

Он обрезает первый элемент массива:

a=( ' one ' two three )
a=$(echo $a)
echo "<$a>"

Вывод:

<one>

Вы можете играть с различными комбинациями цитирования:

#! /bin/bash
for i in {1..4} ; do 
    a=( $' one \n * two ' three four )
    case $i in
        (1) a=$(echo $a)     ;;
        (2) a=$(echo "$a")   ;;
        (3) a="$(echo $a)"   ;;
        (4) a="$(echo "$a")" ;;
    esac
    echo "<$a>"
done

Но в основном, вы должны использовать

a[0]=...

, если вы хотите назначить первый элемент массива, и

echo "${a[0]}"

, если вы хотите вывести его первый элемент.

0
26.03.2018, 08:40
2 ответа

Если в правиле используются регулярные выражения (, похоже, что это так ), тогда измените

/^To:.targetuser@ourcompanyshostname.org/ REJECT

-

/^To:.*targetuser@ourcompanyshostname.org/ REJECT

.*позволяет любой строке находиться между To:и targetuser@. Обратите внимание, что это также будет отклонять электронные письма, отправленные на someothertargetuser, поскольку это также будет соответствовать выражению.

1
28.01.2020, 02:43

Сопоставления заголовка недостаточно, так как сообщения могут иметь другой адрес Кому, чем адрес получателя конверта. См.http://www.linuxmail.info/postfix-restrict-sender-recipient/для некоторых советов по отклонению почты на основе адреса получателя. Другим решением может быть полное удаление адреса получателя, конечно, вы не можете этого сделать, если содержимое почтового ящика все еще необходимо, и вы планируете повторно активировать адрес в будущем.

0
28.01.2020, 02:43

Теги

Похожие вопросы