Katakanlah saya memiliki 5 pesan di /var/mail/ dan saya ingin membaca satu pesan pada satu waktu dan kemudian melakukan pencarian string di email itu sebelum melanjutkan ke pesan berikutnya. Apakah ada perintah yang dapat saya gunakan untuk mengurai satu pesan dalam satu waktu?
Saya ingin menulis skrip bash yang akan membaca semua pesan dalam file mbox &kemudian membacanya satu per satu sehingga saya kemudian dapat mengekstrak Subjek, Ke, Dari &Status pesan (kode bouncing). Rencana saya adalah menggunakan grepmail untuk mendapatkan jumlah email dalam file dan kemudian menggunakan hitungan ini dalam loop for untuk mendapatkan satu email pada satu waktu dan mereka melakukan operasi pada teks. Sesuatu seperti:
$count = grepmail -r . /var/mail/user | awk '{print $2}'
for($i=1;$i<=$count;$i++) {
$content = *GetMessage* -number $i /var/mail/user
...
Do string operation on this message & save to $DelimitedData
...
}
$Delimiteddata
Saya tidak tahu cara mengambil satu pesan sekaligus untuk melakukan operasi string pada mereka. Adakah yang bisa membimbing saya perintah/program mana yang dapat membantu saya melakukan ini secara non-interaktif.
Jawaban yang Diterima:
formail
alat dari procmail (tersedia dalam distribusi apa pun, ini klasik) dirancang dengan tepat untuk tujuan ini.
Penggunaan dasar:
formail -s myprogram --option
menjalankan myprogram --option
pada setiap surat secara bergantian. Program menerima setiap email pada input standarnya.