Bagaimana cara mengatur daftar putih email menggunakan procmailrc hanya untuk melindungi anak-anak saya dari email yang tidak diinginkan?

2

Bagaimana cara mengatur daftar putih email menggunakan procmailrc hanya untuk melindungi anak-anak saya dari email yang tidak diinginkan?

Saya saat ini kami kontrol orangtua OS, tapi itu hanya baik untuk komputer itu diaktifkan.

Saya mengerti bahwa ketika anak-anak saya tumbuh dewasa, mereka akan mencari cara untuk mengatasi batasan orangtua teknis yang dikenakan pada mereka, tetapi saya ingin setidaknya memahami pilihan yang saya miliki sampai saat itu.

hanleyp
sumber
Saya sudah melakukan ini untuk mengirim pengingat ke ponsel saya - saya akan posting resep ketika saya bisa ssh ke server saya :)
warren
menambahkan resep daftar putih seperti yang dijanjikan :)
warren
Barang bagus. Saya harus mencoba ini juga.
pave

Jawaban:

1

procmaildapat memfilter menurut Fromtajuk, dan ada banyak contoh resep.

# Yang ini membuang semua email yang dikirim dari alamat di bawah ini.
: 0
* ^ Dari: [email protected]
/ dev / null

Tapi jangan lupa itu procmailhanya berfungsi dengan surat yang dikirim secara lokal. Ini tidak akan memengaruhi kotak surat yang diakses melalui IMAP atau webmail.

grawity
sumber
Ini adalah resep daftar hitam. Apakah Anda tahu cara melakukannya sebaliknya? Semisal hanya membolehkan surat dari alamat tertentu.
hanleyp
1
Cukup ubah resep yang akan digunakan ${DEFAULT}sebagai kotak surat, lalu tambahkan resep kedua yang mengarahkan sisanya /dev/null.
grawity
@ RoninTom jawabannya lebih sederhana dan lebih tepatnya.
tripleee
1

Yang saya gunakan untuk mengirim pesan dari diri saya ke telepon saya:

VERBOSE=off
LOGFILE=/dev/null

# if it comes from a specific address(es), send to my cell
# it's be just as easy to whitelist a domain by adding another `|domain.tld` section to the bracketed regex
:0
* ^From.*[main.email.domain.tld|other.email.domain.tld]
* ^To.*datente
! [email protected]

# push everything else to my normal user
:0 
* .
! mainuser
warren
sumber
juga mencatat: Saya sengaja hanya mengumpulkan email dikirim ke satu domain, tidak ada orang lain host di server yang sama
warren
1

Saya pikir kita belum punya solusi apa pun, yang justru memecahkan masalah awal. Karena itu, saya ingin memberikan pendekatan yang lebih eksplisit. Mari kita anggap, bahwa daftar putih kita terlihat seperti ini:

white.domain.tld
light.domain.tld

Maka saya akan mencoba penerimaan berikut:

:0
* !^From.*@white\.domain\.tld
* !^From.*@light\.domain\.tld
/dev/null

Ini akan mengirim semua email yang bukan dari [email protected] dan bukan dari [email protected] ke /dev/null. Email yang tersisa dikirim ke tujuan default. Berhati-hatilah untuk digunakan \.dalam pola Anda jika Anda ingin mencocokkan satu titik. Pola tersebut .cocok dengan satu karakter.

Jika Anda memiliki daftar putih pendek, Anda bisa mencoba mendapatkan penerimaan yang lebih pendek dengan menggabungkan pola:

:0
* !^From.*@(white|light)\.domain\.tld
/dev/null

Berhati-hatilah untuk menggunakannya di ( )sini. Menggunakan [ ]akan menjadi kesalahan.

Ronin Tom
sumber
1

Saya sama sekali tidak yakin dari mana saya mendapatkan ini (saya tahu saya tidak menulisnya sendiri), tetapi saya sudah menggunakannya .procmailrcuntuk sementara waktu sekarang untuk meneruskan hanya pesan dari alamat yang tercantum dalam file daftar putih terpisah ke alamat email target yang diberikan:

PMDIR=$HOME/Procmail      # Make sure this directory exists!
[email protected]

# allow any addresses listed in $PMDIR/whitelist
WHITELIST=$PMDIR/whitelist
FROM_ADDR=`formail -zxFrom: | sed 's/\(.*[^-_\.0-9a-zA-Z]\)\?\([-_\.0-9a-zA-Z]\+@[-_\.0-9a-zA-Z]\+\).*/\2/'`
:0
* ? fgrep -xs "$FROM_ADDR" "$WHITELIST"
! $TARGET
Ishak
sumber