Trích xuất / lưu tệp đính kèm thư bằng bash


30

Sử dụng các bashcông cụ bình thường (nghĩa là các công cụ dòng lệnh tích hợp hoặc phổ biến), là nó

  • có thể, và
  • làm sao

để trích xuất / lưu tệp đính kèm trên email?

Ví dụ: giả sử tôi có báo cáo hàng đêm đến qua email nhưng là kho lưu trữ zip của một số tệp nhật ký. Tôi muốn lưu tất cả các khóa vào một thư mục sao lưu. Làm thế nào tôi có thể hoàn thành nó?


"công cụ bash bình thường" - bạn có nghĩa là chỉ sử dụng các hàm được tích hợp trong bash (nghĩa là những gì bạn sẽ tìm thấy trong trang bash man) hay nói chung hơn là các công cụ dòng lệnh mà bạn có thể thêm vào tập lệnh bash shell ?
Doug Harris

@Doug Harris - hoặc .. nếu tôi có thể gọi mailvà làm điều này, hoặc lưu tệp đính kèm theo cách khác, điều đó cũng tốt :)
warren

Câu trả lời:


29

Nếu bạn đang nhắm đến tính di động, hãy cẩn thận rằng có một số phiên bản khác nhau mail(1)mailx(1). Có một mailxlệnh POSIX , nhưng với rất ít yêu cầu. Và không có triển khai nào tôi dường như phân tích các tệp đính kèm.

Bạn có thể có gói mpack . munpackLệnh của nó lưu tất cả các phần của thông báo MIME vào các tệp riêng biệt, sau đó tất cả những gì bạn phải làm là lưu các phần thú vị và dọn sạch phần còn lại.

Có cả metamail . Một tương đương munpackmetamail -wy.


Ngoài ra, để thêm rằng nếu bạn cũng muốn trích xuất các phần MIME văn bản của email khi sử dụng munpackthì hãy sử dụng tùy chọn '-t':munpack -t email_file
Pierz

Cảm ơn thông tin về metamail. Bạn có thể vui lòng giúp tôi với câu hỏi này ?
george

13

Chương trình tốt nhất cho mục đích này là ripMIME.

Nó trích xuất văn bản và tất cả các tệp đính kèm:

https://pldaniels.com/ripmime/

GitHub: inflex / ripMIME


4
sudo apt install ripmime hoạt động mặc dù. Xem thêm linux.die.net/man/1/ripmime . Tôi sử dụng chương trình này; hoạt động tuyệt vời, không phụ thuộc ngoại trừ libc6.
unhammer

công cụ tốt, siêu dữ liệu và munpack không có sẵn trên Ubuntu nhưng ripmime là và thực hiện chính xác những gì mong đợi.
Diego

2
  • thể

  • Đây là CÁCH (Tài nguyên từ đây )

tìm tập tin chứa tập tin | trong khi đọc tập tin; làm

tạo tempdir và sao chép tập tin ở đó

chạy munpack trên tập tin và sao chép tệp đính kèm ở nơi khác

phá hủy tempdir (nội dung)

làm xong


Nếu bất cứ ai muốn tôi dán tập lệnh Perl vào đây thì hãy để lại nhận xét
subanki

1
nếu bạn sẽ rất loại (rõ ràng để lại ghi công về nơi bạn tìm thấy nó :))
warren

1
chỉ cần đọc kịch bản ... đó là một heckuva rất nhiều perl!
warren

Vì vậy, bạn chắc chắn rằng bạn muốn tôi đưa nó vào câu trả lời của tôi, nó sẽ trở nên rất dài.
subanki

không dán ở đây, sao chép từ nguồn ban đầu sẽ tốt hơn trong trường hợp này :)
warren
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.