ฉันต้องการใช้ sendmail เพื่อส่งสิ่งต่าง ๆ และต้องการที่จะทำใน oneliner
echo "mail content" | sendmail emailataddres.com
ส่งได้โดยไม่มีหัวเรื่อง
หัวเรื่องต้องมาก่อนเนื้อหาเมลดังนั้นฉันกำลังมองหาบางอย่างตามบรรทัดของ:
echo "mail content" | prepend "Subject: All that matters" | sendmail emailataddres.com
sed และ awk มีแนวโน้มที่จะใช้และจำได้ยาก
แก้ไข : เพียงเพื่อชี้แจง: echo "เนื้อหาจดหมาย" เป็นเพียงตัวอย่างที่แสดงให้เห็น ฉันต้องสามารถเพิ่มเนื้อหาลงในสตรีม stdout จากแหล่งใดก็ได้ เช่น: ifconfig, zcat เป็นต้น
prependทำอย่างไร? ในการที่จะรู้วิธีการเตรียมบางสิ่งบางอย่างคุณต้องรอจนกระทั่งคำสั่ง upstream (เช่นecho) ส่ง EOF เพื่อให้คุณสามารถแทรกข้อมูลของคุณล่วงหน้าในสตรีมก่อนที่จะส่งไปยัง stdout เพื่อรับ piped ไปยัง sendmail ฟังดูเหมือนงานของสคริปต์ Ruby หรือ Python ที่สั้น
mailคำสั่ง (บางครั้งเรียกว่า bsdmail) แทนที่จะใช้sendmailโดยตรง mailใช้ตัว-s subjectเลือกเพิ่มเติมเช่น: ifconfig -a | mail -s 'Current ifconfig output' me@someaddr.com
echo -e "Subject: All that matters\nmail content"? หรือแพลตฟอร์มที่ไม่เชื่อเรื่องพระเจ้ามากขึ้น:printf 'Subject: %s\n%s\n' "All that matters" "mail content". คุณยังสามารถเขียนสคริปต์ขนาดเล็กที่เพิ่งใช้อาร์กิวเมนต์สตริงทั้งสองเพื่อทำให้เป็นหนึ่งซับที่ง่ายยิ่งขึ้น