PCRE_TABLE(5) PCRE_TABLE(5)
NAME
pcre_table - format tabel Postfix PCRE
SYNOPSIS
postmap -q "string" pcre:/etc/postfix/filename
postmap -q - pcre:/etc/postfix/filename <inputfile
DESCRIPTION
Sistem mail Postfix menggunakan tabel opsional untuk penu-
lisan kembali alamat atau mail routing. Tabel ini biasanya
dalam format dbm atau db. Kemungkinan lain, tabel lookup
dapat ditentukan dalam bentuk Perl Compatible Regular Ex-
pression.
Untuk menemukan tipe dari tabel lookup untuk dukungan sis-
tem Postfix Anda, gunakan perintah postconf -m.
Untuk memeriksa tabel lookup, gunakan perintah postmap se-
perti dijelaskan dalam SYNOPSIS di atas.
TABLE FORMAT
Bentuk umum dari sebuah tabel PCRE adalah:
/pattern/flags result
!/pattern/flags result
Ketika pattern cocok (atau tidak cocok) pada sebuah
pencarian string, gunakan nilai result yang sesuai.
blank lines and comments
Baris kosong dan whitespace diabaikan, baris yang
mempunyai karakter non-whitespace pertama adalah
lah sebuah `#'.
multi-line text
Sebuah baris logikal dimulai dengan teks non-white-
space. Baris yang dimulai dengan whitespace dilan-
jutkan dengan baris logikal.
if /pattern/flags
if !/pattern/flags
endif Cocokkan pencarian string dengan pola-pola antara
if dan endif, jika dan hanya jika pencarian string
cocok (atau tidak cocok) dengan pattern.
If..endif dapat bersarang (nest).
Catatan: jangan memberikan whitespace untuk pola-
pola di dalam if..endif.
Tiap pola adalah sebuah perl-like regular expression. Pem-
batasan ekspresi dapat berupa karakter apa saja, kecuali
whitepace atau karakter yang mempunyai arti khusus (seca-
ra umum forward slash digunakan). Regular expression dapat
berisi whitespace.
Secara default, pencocokkan bersifat case-insensitive, dan
baris baru tidak diperlakukan sebagai karakter khusus.
Tingkah lakunya dikontrol oleh flag, yang di-toggle dengan
menambahkan satu atau lebih karakter berikut ini setelah
pola:
i (default: on)
Toggle flag sensitivitas case. Secara default, pen-
cocokkan adalah case insensitive.
m (default: off)
Toggle flag PCRE_MULTILINE.Ketika flag ini diaktif-
kan, metakarakter ^ dan $ dengan segera cocok sete-
lah dan sebelum karakter baris baru, berturut-turut
, dan juga untuk pencocokkan di awal dan akhir da-
ri subject string.
s (default: on)
Toggle flag PCRE_DOTALL. Ketika flag ini aktif, me-
takarakter . mencocokkan karakter baris baru.
Postfix sampai dengan versi 20020528, flag ini di-
nonaktifkan secara default, dan ini menyusahkan un-
tuk pencocokkan header pesan multiline.
x (default: off)
Toggle flag pcre extended. Ketika flag ini diaktif-
tifkan, whitespace dalam pola (lain dari yang di
dalam kelas karakter), karakter antara sebuah # di
luar kelas dan baris baru selanjutnya diabaikan.
Sebuah escaping backslash dapat digunakan untuk me-
nyertakan sebuah karakter whitespace atau # sebagai
bagian dari pola.
A (default: off)
Toggle flag PCRE_ANCHORED. Ketika flag ini diaktif-
kan, pola dipaksa untuk "anchored" dan cocok hanya
pada awal string yang dicari ("subject string").
Efek ini dapat juga didapatkan dengan kontruksi ya-
ng sesuai dalam pola itu sendiri.
E (default: off)
Toggle flag PCRE_DOLLAR_ENDONLY.Ketika flag ini ak-
tif, semua metakarakter $ dalam pola cocok hanya
dengan akhir subject string.
Tanpa flag ini, sebuah karakter dollar juga cocok
dengan segera sebelum karakter terakhir jika meru-
pakan baris baru (tetapi bukan sebelum karakter ba-
ris baru). Flag ini diabaikan jika PCRE_MULTILINE
diset.
U (default: off)
Toggle flag ungreedy matching. Ketika flag ini ak-
tif, engine pencocokkan pola membalikkan "greedine-
ss" quantifier jadi tidak rakus secara default, te-
tapi menjadi rakus jika diikuti dengan "?".
Flag ini dapat juga diset dengan sebuah modifier
(?U) di dalam pola.
X (default: off)
Toggle flag PCRE_EXTRA. Ketika flag ini aktif, se-
tiap backslash di dalam sebuah pola diikuti dengan
huruf yang tidak mempunyai arti khusus yang menye-
babkan kesalahan,sehingga pencadangan kombinasi ini
untuk ekpansi ke depan.
SEARCH ORDER
Pola-pola diterapkan dalam urutan yang ditentukan pada ta-
bel, sampai sebuah pola ditemukan dan cocok dengan string
yang dicari.
Tiap pola diterapkan ke semua string lookup key.Tergantung
dari aplikasinya, string tersebut adalah seluruh nama host
client, alamat IP client, atau alamat mail.
Jadi,tidak ada pencarian parent domain atau parent network
yang diselesaikan, dan alamat mail user@domain tidak dipi-
sahkan ke bagian-bagian pengguna dan domain, user+foo pun
tidak dipisahkan ke user dan foo.
TEXT SUBSTITUTION
Substitusi substring dari ekspresi yang cocok ke dalam ha-
sil string adalah mungkin dengan menggunakan sintaks perl
yang konvensional ($1, $2, dst.). Makro dalam hasil string
perlu untuk ditulis sebagai ${n} atau $(n) jika tidak dii-
kuti dengan whitespace.
Catatan: karena pentiadaan pola (yang didahului dengan !)
mengembalikan hasil ketika ekspresi tidak cocok,substitusi
tidak tersedia untuk pentiadaan pola.
EXAMPLE SMTPD ACCESS MAP
# Melindungi outgoing majordomo exploder Anda
/^(?!owner-)(.*)-outgoing@(.*)/ 550 Gunakan ${1}@${2}
# Bounce friend@whatever, kecuali ketika domain kita (Lebih baik
# Anda mem-bounce semua mail friend@ - ini hanya sebagai contoh).
/^friend@(?!my\.domain)/ 550 Masukkan ini ke $0 Anda
# Sebuah entri multi-line. Teks ini dikirimkan dalam satu baris.
#
/^noddy@my\.domain$/
550 Pengguna ini lucu. Anda tidak ingin mengirimkan mail ke
pengguna tersebut yang hanya membuat kepala mereka pusing.
EXAMPLE HEADER FILTER MAP
/^Subject: cara cepat mendapatkan uang/ REJECT
/^To: friend@public\.com/ REJECT
EXAMPLE BODY FILTER MAP
# Pertama, abaikan teks base 64 encoded untuk menghemat CPU cycles.
# Memerlukan PCRE versi 3.
~^[[:alnum:]+/]{60,}$~ OK
# Letakkan pola body Anda sendiri di sini.
SEE ALSO
regexp_table(5) format tabel POSIX regular expression
cidr_table(5) format tabel CIDR
tcp_table(5) Protokol tabel lookup TCP client/server
AUTHOR(S)
Kode tabel lookup PCRE asli ditulis oleh:
Andrew McNamara
andrewm@connect.com.au
connect.com.au Pty. Ltd.
Level 3, 213 Miller St
North Sydney, NSW, Australia
Diadopsi dan disesuaikan oleh:
Wietse Venema
IBM T.J. Watson Research
P.O. Box 704
Yorktown Heights, NY 10598, USA
PCRE_TABLE(5)