ฉันต้องการใช้ 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"
. คุณยังสามารถเขียนสคริปต์ขนาดเล็กที่เพิ่งใช้อาร์กิวเมนต์สตริงทั้งสองเพื่อทำให้เป็นหนึ่งซับที่ง่ายยิ่งขึ้น