ฉันจะส่ง / var / mail / root อีกครั้งได้อย่างไร


12

ด้วยการกำหนดค่าผิดพลาดบางครั้งฉันมีอีเมลจำนวนมากใน / var / mail / root และ / var / mail / www-data

ฉันจะ "วนซ้ำ" เหนือไฟล์เหล่านี้และส่งจดหมายแต่ละฉบับในเวลาอื่นได้อย่างไร

คำตอบ:


17

formailส่วนหนึ่งของ procmail (และอาจมีอยู่แล้วในระบบของคุณ) สามารถนำกล่องจดหมายแยกออกเป็นข้อความแล้วเรียกใช้คำสั่งในแต่ละรายการ จากหน้าคน:

   -s   The input will be split up into separate mail messages, and  piped
        into  a  program  one  by  one (a new program is started for every
        part).  -s has to be the last option specified, the first argument
        following  it  is  expected to be the name of a program, any other
        arguments will be passed along to it.  If you  omit  the  program,
        then  formail  will  simply  concatenate the split mails on stdout
        again.  See FILENO.

ดังนั้นคุณสามารถทำสิ่งที่ฉันคิดว่าคุณต้องการเช่นนี้:

  formail -s /usr/sbin/sendmail -oi -t < /var/mail/root

3
แต่สิ่งที่ Kriss พูดอีกครั้ง: วิธีแก้ปัญหานี้จะถือว่าคุณได้แก้ไขนามแฝงในประเทศของคุณหรือบางสิ่งบางอย่างเพื่อส่งข้อความไปยัง / var / mail / root ตัวอย่างเช่นคุณสามารถทำได้ "formail -s / usr / sbin / sendmail -oi you@somewhere.else" เพื่อเปลี่ยนเส้นทางข้อความทั้งหมด
larsks

สมมติว่า www-data และ root ได้รับการกำหนดค่าอย่างถูกต้องแล้วเช่น "for foo in ls /var/mail; formail -s / usr / sbin / sendmail -oi $ foo <./$foo; เสร็จสิ้น" ควรวนรอบแต่ละไฟล์และส่งแบบโลคัล ..
Tom H

3
mutt -f /var/mail/www-data

จากนั้นภายใน mutt ...

T.*
;b

T ทำให้มันอยู่ในโหมดการแท็กและ. * แท็กข้อความทั้งหมด เซมิโคลอนจะใช้คำสั่งถัดไปกับข้อความที่ติดแท็กทั้งหมดและในที่สุด b "ตีกลับ" ข้อความไปยังที่อยู่ที่จะแจ้งให้

จากความทรงจำฉันก็คิดเช่นกัน

D.*

หรือ

T.*
;d

จากนั้นจะทำให้กล่องจดหมายว่างเปล่า


0

ไฟล์กล่องจดหมาย / var / spool / mail / xxx unix เป็นไฟล์ข้อความทั่วไปที่เก็บข้อความเมลตามลำดับ ข้อความอีเมลแต่ละข้อความเริ่มต้นด้วยบรรทัด "จาก" (ไม่ใช่ส่วนหนึ่งของข้อความ) พร้อมด้วยผู้ส่งและวันที่รับคุณจะได้รับส่วนหัวจดหมายจากนั้นตามด้วยเนื้อหาของจดหมาย

โดยทั่วไปคุณสามารถวนรอบไฟล์ที่ตรวจจับเช่นจากบรรทัดและแยกทุกข้อความแล้วส่งโดยใช้เครื่องมือเช่นโมดูล ptp smtp หรือโมดูล perl Net :: SMTP จาก cpan

หากเป้าหมายเป็นกล่องจดหมายอีกกล่องคุณสามารถเพิ่มข้อความต่อท้าย (รวมถึงบรรทัดจาก) คุณสามารถผนวกทั้งกล่องจดหมายรูททั้งหมดไปยังกล่องจดหมายอื่นได้หากคุณไม่สนใจว่าจะได้รับข้อความที่กำหนดเป้าหมายไปที่รูทจริงๆหรือไม่

ฉันควรมีสคริปต์ที่ทำเช่นนั้นและจะโพสต์ตัวอย่างถ้าคุณต้องการ

ปัญหาอาจได้รับเป้าหมายที่แท้จริงของข้อความเพราะหากพวกเขาจบลงในกล่องจดหมายรูทพวกเขาอาจถูกกำหนดเป้าหมายให้รูทจากจุดเริ่มต้นหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.