REGEXP_TABLE(5) REGEXP_TABLE(5)
NAME
regexp_table - format of Postfix regular expression tables
SYNOPSIS
postmap -q "string" regexp:/etc/postfix/filename
postmap -q - regexp:/etc/postfix/filename <inputfile
DESCRIPTION
Sistem email Postfix menggunakan tabel opsional untuk me-
lakukan address rewriting atau mail routing. Tabel-tabel
ini biasanya dalam bentuk dbm atau db. Sebagai alternatif,
tabel pencarian bisa menggunakan bentuk dari POSIX regular
expression.
Untuk melihat tabel pencarian apa yang didukung oleh sis-
tem Postfix anda gunakan perintah postconf -m.
Untuk mengetest tabel pencarian, gunakan perintah postmap
seperti yang diterangkan pada SYNOPSIS diatas.
TABLE FORMAT
Bentuk umum dari tabel regular expression di Postfix adalah:
/pattern/flags result
!/pattern/flags result
Ketika pattern sesuai (tidak sesuai) dengan string
pencarian, maka result akan digunakan.
blank lines and comments
Baris kosong dan baris yang hanya berisi spasi dia-
baikan seperti halnya baris dengan awalan bertanda
`#'.
multi-line text
Baris yang dimulai tanpa spasi akan dianggap seba-
gai baris entry/logic. Baris yang dimulai spasi ju-
ga dianggap sebagai baris entry/logic.
if /pattern/flags
if !/pattern/flags
endif Sesuai dengan pola string pencarian diantara if dan
endif, jika dan hanya jika string pencarian sesuai
(dan tidak sesuai) dengan pattern. if..endif bisa
bersarang.
Catatan: jangan menggunakan pola dengan spasi dida-
lam if..endif.
Setiap pola regular expression tertutup oleh sepasang pemi-
sah. Sintaks regular expression dijelaskan dalam re_format
(7). Pemisah expression dapat berupa sembarang karakter,
kecuali spasi atau karakter yang mempunyai arti spesial
(biasanya slash akan digunakan). Regular expression bisa
bisa mengandung spasi.
Pada dasarnya, besar-kecilnya huruf tidak diperhatikan, ke
cuali jika pada tanda slash kedua diikuti dengan flag `i'.
Flag yang lain adalah `x' (non aktifkan sintak extended
expression), dan `m' (aktifkan mode multi-line, yang mem-
berlakukan baris baru sebagai spesial).
TABLE SEARCH ORDER
Pola akan diterapkan secara berurutan seperti yang diten-
tukan dalam tabel, sampai akhirnya pola tersebut ditemukan
berdasarkan string pencarian.
Setiap pola diterapkan ke seluruh string kunci pencarian.
Tergantung dari aplikasi, string tersebut bisa berupa se-
luruh client hostname, seluruh alamat IP client, atau se-
luruh alamat email. Maka, tidak ada pencarian terhadap
induk domain atau induk network yang dilakukan, dan alamat
email user@domain tidak akan dipisah sebagai user dan do-
main, begitu juga user+foo tidak dipisah menjadi user dan
foo.
TEXT SUBSTITUTION
Penggantian bentuk substring dari ekpresi yang tepat keda-
lam string hasil adalah dimungkinkan menggunakan $1, $2,
dan lain sebagainya. Sistem makro pada string hasil mung-
kin perlu ditulis sebagai ${n} atau $(n) jika tidak diiku-
ti oleh spasi.
Catatan: karena pola negasi (ditandai dengan !) selalu me-
ngembalikan hasil ketika ekspresi tidak sesuai, maka sub-
titusi tidak bisa dilakukan untuk pola negasi.
EXAMPLE SMTPD ACCESS MAP
# Tolak sender-specified routing. Ini harus anda sertakan
# jika anda merelay email untuk domain yang lain.
/[%!@].*[%!@]/ 550 Sender-specified routing rejected
# Postmaster OK, itu adalah cara berkomunikasi untuk mem-
# betulkan masalah di mereka.
/^postmaster@/ OK
# Lindungi outgoing majordomo exploder anda.
if !/^owner-/
/^(.*)-outgoing@(.*)$/ 550 Use ${1}@${2} instead
endif
EXAMPLE HEADER FILTER MAP
# Contoh dibawah ini adalah bentuk umum email sampah.
/^Subject: make money fast/ REJECT
/^To: friend@public\.com/ REJECT
EXAMPLE BODY FILTER MAP
# Pertama lewati text yang menggunakan encoding base 64
# untuk menyelamatkan CPU cycle.
~^[[:alnum:]+/]{60,}$~ OK
# Letakkan pola body message disini.
SEE ALSO
pcre_table(5) format of PCRE tables
cidr_table(5) format of CIDR tables
tcp_table(5) TCP client/server table lookup protocol
AUTHOR(S)
The regexp table lookup code was originally written by:
LaMont Jones
lamont@hp.com
That code was based on the PCRE dictionary contributed by:
Andrew McNamara
andrewm@connect.com.au
connect.com.au Pty. Ltd.
Level 3, 213 Miller St
North Sydney, NSW, Australia
Adopted and adapted by:
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
REGEXP_TABLE(5)