Ini adalah perintah gurgitate-mail yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa stasiun kerja online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
gurgitate-mail - filter surat yang mudah digunakan
RINGKASAN
surat gurgitate
DESKRIPSI
"gurgitate-mail" adalah program yang membaca email Anda dan memfilternya sesuai dengan
.gurgitate-rules.rb file di direktori home Anda. File konfigurasi menggunakan sintaks Ruby
dan dengan demikian cukup fleksibel.
Biasanya dipanggil baik melalui Anda .maju File:
"|/jalur/ke/gurgitate-mail"
Atau melalui .procmailrc File:
: 0:
| /path/ke/gurgitate-mail
Atau, jika Anda adalah sysadmin di situs Anda, atau sysadmin Anda ramah, Anda dapat
gunakan gurgitate-mail sebagai agen pengiriman lokal. Untuk postfix, masukkan
mailbox_command=/opt/bin/gurgitate-mail
in /etc/postfix/main.cf. Jika Anda menggunakan MTA lain, dan konfigurasikan gurgitate-mail sebagai
agen pengiriman lokal, tolong beri tahu saya caranya! Saya ingin memasukkan ini ke dalam dokumentasi.
KONFIGURASI FILE
Ada tiga file konfigurasi yang digunakan oleh gurgitate-mail: dua di seluruh sistem, dan
ketiga, adalah file aturan pengguna.
Dua file konfigurasi seluruh sistem adalah /etc/gurgitate-rules dan
/etc/gurgitate-rules-default. Ini diproses sebelum dan sesudah aturan pengguna,
masing.
/etc/gurgitate-rules digunakan untuk menangani kebutuhan pemfilteran di seluruh sistem: menyetel default
gaya kotak surat ke Maildir daripada MBox default, mengatur direktori spool, hal-hal
seperti itu.
File konfigurasi pengguna adalah $HOME/.gurgitate-aturan (atau, sebagai alternatif,
$HOME/.gurgitate-rules.rb. Entah bekerja). Anda menempatkan aturan Anda sendiri di sini. Jika pengguna
file konfigurasi tidak menemukan "pengembalian" selama pemrosesan, maka tambahan
aturan yang terkandung dalam /etc/gurgitate-rules-default dijalankan. Jika itu juga tidak kembali,
kemudian pesan email disimpan ke lokasi spool email default.
Jika opsi "-f" digunakan pada baris perintah, maka file yang ditentukan akan digunakan dan
aturan default tidak akan. Opsi "-f" dapat digunakan lebih dari sekali:
gurgitate-mail -f aturan tes -f aturan tambahan
KONFIGURASI PARAMETER
Ada beberapa parameter yang dapat Anda atur untuk mengubah cara gurgitate-mail
berperilaku. Anda menetapkan parameter konfigurasi dengan mengatakan, misalnya:
kirim email "/usr/sbin/sendmail"
yang menyetel parameter "sendmail" ke "/usr/sbin/sendmail".
maildir
Direktori tempat Anda ingin meletakkan folder email. Ini default ke $HOME/Mail.
file log
Ke mana Anda pergi ke pesan log gurgitate-mail. Lokasi standar untuk
ini $HOME/.gurgitate.log
kirim email
Jalur lengkap ke program sendmail, digunakan untuk mengirim email. Ini bisa berupa program apa saja
yang mengambil sebagai parameternya daftar alamat untuk mengirim email, dan yang mengambil
pesan email pada input standar.
homedir
Path lengkap direktori home Anda. Ini default untuk apa pun rumah Anda yang sebenarnya
direktori adalah.
spooldir
Jalur tujuan spool email sistem. Ini default ke "/var/spool/mail".
Pada sistem Maildir, ini harus disetel sama dengan "homedir".
spoolfile
Komponen file spool mail dari path lengkap spool mail Anda. Ini umumnya
nama pengguna Anda. Pengguna Maildir harus mengatur ini ke "Maildir".
gaya folder
Gaya folder yang Anda inginkan. Ini bisa (saat ini) baik MBox atau Maildir.
FILTER ATURAN
Aturan filter adalah serangkaian pernyataan Ruby, dengan metode dan variabel berikut:
tersedia:
Variabel
from Ini berisi alamat "dari" amplop dari pesan email. (Perhatikan bahwa ini
belum tentu sama dengan isi header "Dari:")
header
Ini adalah objek yang berisi header pesan. Ada beberapa metode
yang datang dengan objek ini:
body Ini berisi isi pesan email. Sampai sekarang, tidak ada yang benar-benar
menarik yang dapat Anda lakukan dengan ini, selain menugaskannya; Anda dapat menulis ulang
isi pesan email dengan cara ini. Berurusan dengan lampiran direncanakan untuk
rilis masa depan "gurgitate-mail".
maildir
Direktori yang berisi folder, digunakan oleh metode "simpan" saat Anda menentukan
folder sebagai "=map" (seperti Elm). Defaultnya adalah "$HOME/Mail".
homedir
Direktori rumah Anda. Hanya baca.
file log
Lokasi file log "gurgitate-mail". Jika disetel ke "nil", maka tidak ada logging
selesai. Default ke "$HOME/.gurgitate.log".
kirim email
Lokasi program "sendmail". Digunakan dengan metode "maju". Default untuk
"/usr/lib/sendmail".
spoolfile
Lokasi gulungan surat. Hanya baca.
metode
cocok (nama), ekspresi reguler)
Mengembalikan "true" jika tajuk "nama" cocok dengan ekspresi reguler "regex". Jika
"name" adalah larik nama header, kemudian mengembalikan nilai true jika setidaknya salah satu dari
header cocok. Berguna untuk menguji apakah header "Kepada:" dan "Cc:" cocok.
from Mengembalikan alamat "dari" amplop dari pesan email. Perhatikan bahwa ini sama
sebagai "dari" telanjang.
to Mengembalikan HeaderBag (semacam array) dengan isi "To" dan "Cc"
header.
to_s Sesuai dengan konvensi Ruby, mengembalikan semua header sebagai objek "String".
menyimpan(kotak surat)
Ini menyimpan pesan ke kotak surat. Anda dapat menentukan kotak surat sebagai kata dengan =
tanda di depannya, dalam hal ini ia memasukkannya ke dalam "maildir". Jika Anda tidak menggunakan
=nama format, maka Anda perlu menentukan nama path absolut. Jika tidak bisa menulis
pesan ke file yang Anda minta, itu akan mencoba untuk menulisnya ke "spoolfile".
maju (alamat)
Ini meneruskan pesan email ke alamat email lain.
pipa (program)
Ini menyalurkan pesan melalui "program". "pipe" mengembalikan kode keluar dari
program bahwa pesan itu disalurkan.
filter (program)
Ini menyalurkan pesan melalui "program" dan mengembalikan objek Gurgitate baru
berisi surat yang difilter. (Ini berguna untuk filter eksternal yang memodifikasi email
seperti, misalnya, SpamAssassin, yang menambahkan header skor spam.)
Anda juga bisa mengatakan
filter (program) lakukan
#kode disini
akhir
dan itu menghasilkan objek Gurgitate yang baru dibuat ke blok.
header
Ini mengembalikan header sebagai objek mereka sendiri. Objek ini memiliki metodenya sendiri:
tajuk[*nama tajuk]
Ini mengembalikan HeaderBag (subclass dari array) yang berisi header yang Anda minta
untuk. Anda kemudian dapat menggunakan operator =~ pada hasil ini untuk mencocokkan regex RHS
dengan semua yang ada di HeaderBag.
Anda dapat mengubah nilai header dengan "headers[name]=newvalue".
headers.match(nama,regex)
Mencocokkan header dengan nama "nama" dengan ekspresi reguler. Ini sama dengan
header[nama] =~ /regex/.
headers.matches(nama,regex)
Mencocokkan header dengan nama "nama" dengan regex. Ini sama
sebagai header[*nama] =~ /regex/.
header.dari
Mengembalikan amplop dari. Anda dapat mengubahnya dengan "headers.from=newaddress"
juga.
kembali
Ini memberitahu "gurgitate-mail" untuk berhenti memproses pesan email. Jika Anda tidak menggunakan
"kembali", lalu "gurgitate-mail" akan melanjutkan pemrosesan email yang sama lagi dengan
aturan berikutnya. Jika tidak ada "pengembalian" di akhir gurgitate-rules.rb, kemudian
"gurgitate-mail" akan menyimpan pesan email di spool surat biasa.
mencatat(Post)
Ini menulis pesan log ke file log.
SEDERHANA CONTOH
Berikut adalah beberapa contoh aturan "gurgitate-mail", dengan penjelasannya:
jika dari =~ /ebay.com/ lalu simpan("=ebay"); kembali; akhir
Email apa pun dari eBay (pemberitahuan akhir lelang otomatis, misalnya, dan mengalahkan tawaran
pemberitahuan) dimasukkan ke dalam folder "ebay".
jika dari =~ / Root@/ lalu simpan("=root"); kembali; akhir
Setiap email dari root (di host mana pun) akan dimasukkan ke dalam folder khusus. Berguna untuk sysadmin
memantau email crontab.
jika headers.matches(["Kepada","Cc"],"webmaster@") maka
simpan("=webmaster")
kembali
akhir
Setiap email dengan baris To: atau Cc: dari "sysadmin" disimpan ke folder "sysadmin". Berguna
untuk orang dengan beberapa akun peran dialihkan ke alamat mereka.
if headers["Subject"] =~ /\[SPAM\]/ then
simpan("=spam")
kembali
akhir
Ini adalah sintaks yang berbeda untuk mencocokkan pola dengan header. Anda juga dapat mencocokkan
beberapa header dalam tanda kurung siku.
if headers["Subject","Kata Kunci"] =~ /kata yang buruk/ maka
simpan("=sumpah")
kembali
akhir
Menelusuri "kata yang buruk" di tajuk Subjek dan Kata Kunci, dan jika ada, simpan
email di folder "sumpah".
if headers.matches(["Kepada","Cc"],"[email dilindungi]") kemudian
pipa("|rcvstore +milis")
kembali
akhir
Setiap email ke milis disalurkan melalui "rcvstore" untuk menyimpannya ke dalam folder MH.
Bahwa
headers.matches(["Kepada","Cc"],/regex/)
idiom cukup sering terjadi sehingga ada singkatan untuk itu:
jika untuk =~ /[email dilindungi]/ kemudian
pipa("|rcvstore +milis")
kembali
akhir
Mengirim email ke milis melalui "rcvstore".
ADVANCED CONTOH
Berikut adalah beberapa contoh yang sedikit lebih pintar untuk memberi Anda gambaran tentang apa yang dapat Anda lakukan dengan
"gurgitate-mail". Misalkan Anda memiliki daftar putih email dalam file bernama
$HOME/.teman, sehingga Anda dapat menentukan apakah beberapa email kemungkinan merupakan spam atau tidak.
Kemudian jika seseorang di daftar putih Anda mengirimi Anda email, maka Anda secara otomatis menyimpannya ke
folder "kotak masuk":
teman=homedir+"/.teman"
jika FileTest.exist?(teman) dan FileTest.readable?(teman) maka
File.new(teman).setiap melakukan |teman|
jika dari =~ friend.chomp maka
log "Surat dari teman"+teman.chomp
simpan("=kotak masuk")
kembali
akhir
akhir
akhir
Oke, jika seseorang mengirimi Anda email, dan itu ditujukan khusus untuk Anda (dan memuntahkan-
mail belum menangkapnya dalam bentuk lain), maka itu mungkin atau mungkin bukan spam: taruh
ke dalam folder "abu-abu":
alamat_saya= [ /saya@contoh\.com/i,
/saya@contoh\.org/i,
/saya@contoh\.net/i]; # Saya punya tiga alamat email
my_addresses.each lakukan |addr|
jika headers.matches(["Ke","Cc"],addr) maka
simpan("=mungkin-bukan-spam")
kembali
akhir
akhir
Dan setelah itu, jika itu bukan dari seseorang yang Anda kenal, dan itu tidak ditujukan ke email Anda
alamat juga, maka mungkin disimpan untuk menganggap bahwa itu adalah spam:
simpan("=spam")
kembali
Ini dapat ditingkatkan dengan menggunakan filter Bayesian; misalnya, Eric Raymond's
program bogofilter (http://bogofilter.sourceforge.net) dapat dilatih secara otomatis dan
digunakan dengan bantuan perbedaan putih/abu-abu/hitam. Mengambil contoh di atas, saya akan
sesuaikan dengan menambahkan panggilan ke bogofilter:
teman=homedir+"/.teman"
jika FileTest.exist?(teman) dan FileTest.readable?(teman) maka
File.new(teman).setiap melakukan |teman|
jika dari =~ friend.chomp maka
log "Surat dari teman"+teman.chomp
pipe("bogofilter -h") # <-- LINE DITAMBAHKAN DI SINI
simpan("=kotak masuk")
kembali
akhir
akhir
akhir
"bogofilter -h" melatih bogofilter agar email dari orang yang masuk daftar putih tidak boleh
dianggap spam. Oke, di akhir .gurgitate-rules, ubah
simpan("=spam")
kembali
untuk
simpan("=spam")
pipa("bogofilter -s")
kembali
Ini melatih "bogofilter" bahwa apa pun yang tidak lolos dari filter lainnya seharusnya
dianggap spam. Sekarang untuk bagian yang menarik: Ubah sedikit di antara ini untuk digunakan
"bogofilter" untuk memutuskan apakah email dianggap spam atau tidak:
alamat_saya= [ /saya@contoh\.com/i,
/saya@contoh\.org/i,
/saya@contoh\.net/i]; # Saya punya tiga alamat email
my_addresses.each lakukan |addr|
jika headers.matches(["Ke","Cc"],addr) maka
jika pipa("bogofilter")==1
kemudian
log("bogofilter menduga itu mungkin bukan spam")
simpan("=mungkin-bukan-spam")
lain
log("bogofilter mengira itu mungkin spam")
simpan("=spam")
akhir
kembali
akhir
akhir
"bogofilter" memiliki kode keluar "1" jika dianggap pesan bukan spam, dan "0" jika
mengira pesan tersebut adalah spam.
Semoga ini memberi Anda gambaran tentang hal-hal yang dapat Anda gunakan
"bogofilter" untuk.
Gunakan gurgitate-mail online menggunakan layanan onworks.net