Làm thế nào tôi có thể gửi / var / mail / root một lần nữa?


12

Thông qua một số cấu hình sai Tôi có rất nhiều email trong / var / mail / root và / var / mail / www-data

Làm cách nào tôi có thể "lặp" lại các tệp này và gửi từng thư một lần khác?

Câu trả lời:


17

formail , một phần của procmail (và có lẽ đã có sẵn trên hệ thống của bạn) có thể lấy một hộp thư, chia nó thành các tin nhắn và sau đó chạy một lệnh trên mỗi cái. Từ trang người đàn ông:

   -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.

Vì vậy, bạn có thể làm những gì tôi nghĩ bạn muốn như thế này:

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

3
Nhưng cũng những gì kriss nói lại: giải quyết; giải pháp này giả định rằng bạn đã sửa các bí danh cục bộ của mình hoặc một cái gì đó để gửi tin nhắn ở đâu đó ngoài việc quay lại / var / mail / root. Ví dụ, bạn có thể thực hiện "formail -s / usr / sbin / sendmail -oi you@somewhere.else" để chuyển hướng tất cả các tin nhắn.
larsks

giả sử rằng dữ liệu www và root hiện được cấu hình đúng, một cái gì đó như "for foo in ls /var/mail; do formail -s / usr / sbin / sendmail -oi $ foo <./$foo; xong" sẽ lặp từng tệp và phân phối cục bộ ..
Tom H

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

Sau đó trong mutt ...

T.*
;b

T đặt nó vào chế độ gắn thẻ và. * Gắn thẻ tất cả các tin nhắn. Dấu chấm phẩy áp dụng lệnh tiếp theo cho tất cả các tin nhắn được gắn thẻ và cuối cùng b "trả lại" các tin nhắn đến một địa chỉ mà nó sẽ nhắc.

Từ trí nhớ, tôi cũng nghĩ

D.*

hoặc là

T.*
;d

Sau đó sẽ làm trống hộp thư.


0

Các tập tin hộp thư / var / spool / mail / xxx unix là các tệp văn bản đơn giản trong đó các thư được giữ theo thứ tự. Mỗi thư được bắt đầu bằng một dòng "Từ" (taht không phải là một phần của thư) với người gửi và ngày nhận, sau đó bạn nhận được các tiêu đề thư, sau đó là nội dung thư.

Về cơ bản, bạn chỉ có thể lặp trên tệp phát hiện như vậy Từ các dòng và trích xuất mọi tin nhắn sau đó gửi chúng bằng các công cụ như mô-đun python smtp hoặc mô-đun Net :: SMTP từ cpan.

Nếu mục tiêu là một hộp thư cục bộ khác, bạn chỉ có thể nối các tin nhắn (bao gồm cả dòng Từ) vào nó. Bạn thậm chí có thể nối toàn bộ hộp thư gốc vào một hộp thư khác nếu bạn không quan tâm đến việc nhận được thư thực sự nhắm mục tiêu đến root.

Tôi nên có một số kịch bản làm điều đó và sẽ đăng các ví dụ nếu bạn muốn.

Vấn đề có thể là để có được mục tiêu thực sự của tin nhắn bởi vì nếu chúng kết thúc trong hộp thư gốc thì có lẽ chúng đã được nhắm mục tiêu để root từ đầu?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.