Tôi muốn sử dụng sendmail để gửi cho tôi công cụ và muốn thực hiện nó trong một oneliner.
echo "mail content" | sendmail emailataddres.com
Gửi nó mà không có chủ đề.
Dòng tiêu đề phải xuất hiện trước nội dung Thư, vì vậy tôi đang tìm kiếm thứ gì đó dọc theo dòng:
echo "mail content" | prepend "Subject: All that matters" | sendmail emailataddres.com
sed và awk có xu hướng thực sự khó xử khi sử dụng và ghi nhớ.
EDIT : Chỉ cần làm rõ: echo "Nội dung thư" chỉ là một ví dụ minh họa. Tôi cần có khả năng trả trước công cụ cho các luồng xuất phát từ bất kỳ nguồn nào. ví dụ: ifconfig, zcat, v.v.
prepend
làm gì? Để biết cách chuẩn bị một cái gì đó, bạn phải đợi cho đến khi lệnh ngược dòng (ví dụ echo
) gửi EOF, để bạn có thể chèn dữ liệu của mình trước luồng đó trước khi truyền nó tới thiết bị xuất chuẩn để gửi đường dẫn đến sendmail. Âm thanh giống như một nhiệm vụ cho một kịch bản Ruby hoặc Python ngắn.
mail
lệnh (đôi khi được gọi là bsdmail) thay vì sendmail
trực tiếp. mail
có một tùy chọn tùy -s subject
chọn, ví dụ: ifconfig -a | mail -s 'Current ifconfig output' me@someaddr.com
echo -e "Subject: All that matters\nmail content"
? Hoặc nhiều nền tảng bất khả tri :printf 'Subject: %s\n%s\n' "All that matters" "mail content"
. Bạn cũng có thể viết một tập lệnh nhỏ chỉ lấy hai đối số chuỗi để tạo một lớp lót đơn giản hơn nữa.