Cách dễ nhất để gửi email qua tệp lệnh trong * nix?


10

Lệnh nào dễ nhất - và tốt nhất là dễ mang theo nhất - tôi có thể sử dụng để gửi email cho một tệp dưới dạng tệp đính kèm * nix?

Câu trả lời:


11

Giả sử đó là tệp đính kèm nhị phân:

uuencode [tên tệp] [tên tệp] | mail -s [chủ đề] [địa chỉ người nhận]

Bạn không cần bận tâm đến UUencoding nếu đó chỉ là một tệp văn bản, ví dụ:

mail -s [chủ đề] [địa chỉ người nhận] <[tên tệp]

Hầu hết * NIXes đều có mail và uuencode, vì vậy điều này sẽ hoạt động khá nhiều ở mọi nơi.


Nếu tôi muốn tệp văn bản dưới dạng tệp đính kèm chứ không phải trong nội dung thư thì sao?
Yuval A

Nó phụ thuộc - Tôi không nghĩ rằng thư GNU đơn giản có thể làm điều đó, vì vậy bạn sẽ cần sử dụng một ứng dụng thư thực tế; thông, mutt, hoặc một cái gì đó tương tự. Cái nào trong số này có sẵn cho bạn tùy thuộc vào cái nào mà hệ thống của bạn đã cài đặt. Sử dụng mutt, câu trả lời của Gavin (bên dưới) sẽ hoạt động tốt.
RainyRat

Thông là tốt! Tôi có thể sử dụng nó thông qua dòng lệnh bằng cách sử dụng GUI văn bản không?
Yuval A

Tôi nghĩ đó là điều có thể. Hãy xem staff.washington.edu/chappa/pine/info/out gửi.html để biết thêm.
RainyRat

11

Sử dụng mutt, bạn có thể:

mutt -z -a <file> -s <subject> -- user@example.com

Hoặc, nếu bạn không muốn nhập một cơ thể:

mutt -z -a <file> -s <subject> -- user@example.com < /dev/null


mutt không có sẵn trên hệ thống của tôi, dù sao cũng cảm ơn
Yuval A

Tôi nghĩ rằng bạn sẽ thấy rằng đây sẽ là một sự thay đổi giữa những gì dễ dàng và những gì là di động. mailx là xách tay, nhưng không nhất thiết phải dễ dàng. Như RainyRat đã đề cập, tôi nghĩ rằng bạn sẽ phải đi với một MUA đầy đủ và chạy nó từ dòng lệnh.
Gavin McTag hành

2
Tôi đã phải thêm một --địa chỉ email trước để làm cho các lệnh này hoạt động.
Autumnsault 19/03/2015

Dấu gạch ngang trên thực tế là cần thiết để tách địa chỉ email khỏi tên tệp "- user@example.com", @DoctorMohawk là chính xác. Cố gắng thêm chúng ở trên vào phần thân của câu trả lời.
Jeff Clayton

2

" sendEmail là một ứng dụng email email dòng lệnh SMTP nhẹ. Nếu bạn có nhu cầu gửi email từ một dòng lệnh, chương trình miễn phí này rất hoàn hảo: sử dụng đơn giản và giàu tính năng. Nó được thiết kế để sử dụng trong các tập lệnh bash, tập tin bó , Các chương trình và trang web của Perl, nhưng khá dễ thích nghi và có thể sẽ đáp ứng yêu cầu của bạn. SendEmail được viết bằng Perl và độc đáo ở chỗ nó không yêu cầu MODULES. Nó có một bộ tùy chọn dòng lệnh trực quan và linh hoạt, làm cho nó rất dễ dàng để tìm hiểu và sử dụng. [Nền tảng được hỗ trợ: Linux, BSD, OS X, Windows 98, Windows NT, Windows 2000, & Windows XP] "

Tôi đã sử dụng nó trước đây và thực sự thích nó. Bạn có thể đính kèm tập tin với tùy chọn -a.


+1 - Điều này là hoàn hảo cho những gì tôi cần vì nó dễ dàng và vẫn đang được duy trì tích cực! Nếu bạn đang sử dụng hệ thống Debian, bạn có thể aptitude install sendemail. Lưu ý rằng lệnh được cài đặt như sendEmailvới chữ 'E'.
Topher Fangio

Trên thực tế, tarball chứa một tập lệnh perl và một vài tài liệu. Bạn chỉ có thể tải xuống, giải nén nó và chạy nó (miễn là hệ thống của bạn có perl). Vui vì bạn thích nó, mặc dù.
Clinton Blackmore

1

Tôi không thể thêm một bình luận, nhưng ..

  • Các câu trả lời cho điều này sẽ phụ thuộc rất nhiều vào việc, nếu có, phái sinh của mailxbạn có sẵn.
  • Mặc dù tệp MUA sẽ được hiển thị mà không có bất kỳ vấn đề nào khi MUA nhận được, nhưng đường ống từ uuencodekỹ thuật sẽ không tạo ra một email có tệp đính kèm. Hãy xem nguồn email bạn nhận được để biết lý do tại sao.

+1 cho sự thật. Tôi thậm chí còn không nhận ra có một phiên bản mailx có thể gửi tệp đính kèm (chắc chắn là không có). Bạn cũng đúng về cách mã hóa thủ công cần thiết với uuencode -> đường ống thư.
Gavin McTag hành

1

Nếu bạn muốn tính di động tuyệt đối, bạn có thể telnet vào máy chủ thư của mình trên cổng 25 và trực tiếp phát lệnh SMTP. Chúng không quá khó, và nó phải rất có kịch bản.


3
Bạn cũng có thể viết máy chủ SMTP của riêng bạn.
hark

1

Google nhanh chóng xuất hiện trang này , mô tả nhiều cách khác nhau để đính kèm tệp bằng nhiều ứng dụng khác nhau. Một vài trong số những người phổ biến hơn -

  • uuenc8de để thực hiện một "tập tin đính kèm" nội tuyến.

  • siêu xe -f file-to-attach -m mime-type

  • mpack -c mime-type file-to-attach

  • mutt -a file-to-attach

  • Cây du -A file-to-attach

Ngoài ra, nó có các liên kết đến một vài tập lệnh shelltập lệnh Perl để tạo và gửi tin nhắn, có thể sẽ phù hợp hơn với ý thích của bạn.


1
echo "Email body text" | mail -s "Subject of email" -a file.to.attach.txt my@email.com

mail: tùy chọn bất hợp pháp - a
Yuval A

1
lưu ý rằng đây là một tính năng mailx, hãy đảm bảo rằng gói cụ thể đã được cài đặt
niXar

0

Vài năm trước, tôi đã viết một kịch bản shell đã làm điều đó. Nó được gọi là binmail.sh. Nó đã sử dụng một bộ mã hóa base64 (có thể tìm thấy nhiều mã nguồn với google ) và các tệp đính kèm được xây dựng theo RFC1521 .


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.