Computer >> คอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

วิธีส่งอีเมลจากบรรทัดคำสั่ง Linux

คู่มือนี้จะแสดงวิธีการส่งอีเมลจากบรรทัดคำสั่งของ Linux และผ่านเชลล์สคริปต์ ตลอดจนวิธีเพิ่มไฟล์แนบในอีเมลเหล่านั้น

บรรทัดคำสั่ง Linux อาจมีประสิทธิภาพมากเมื่อคุณรู้วิธีใช้งาน คุณสามารถแยกวิเคราะห์ข้อมูล ตรวจสอบกระบวนการ สำรองข้อมูลอัตโนมัติ และทำสิ่งอื่นๆ ที่เป็นประโยชน์และน่าสนใจได้อีกมากมาย มักมีความจำเป็นต้องสร้างรายงานและจัดส่งทางไปรษณีย์ อาจเป็นข้อกำหนดง่ายๆ เหมือนกับการแจ้งเตือนว่าการสำรองข้อมูลของวันนั้นผ่านไปได้ด้วยดีหรือไม่ ฉันจะช่วยคุณในการเริ่มต้นส่งอีเมลจากบรรทัดคำสั่ง Linux และ ในเชลล์สคริปต์ เราจะครอบคลุมถึงการส่งไฟล์แนบจากบรรทัดคำสั่งด้วย เราจะเริ่มด้วยคำสั่ง “mail”

คำสั่งเมล

ขั้นแรก ให้เรียกใช้การทดสอบอย่างรวดเร็วเพื่อให้แน่ใจว่ามีการติดตั้งแอปพลิเคชัน "sendmail" และทำงานอย่างถูกต้อง ดำเนินการคำสั่งต่อไปนี้ โดยแทนที่ “you@youremailid.com” ด้วยที่อยู่อีเมลของคุณ

# เมล - "สวัสดีชาวโลก" you@youremailid.com

กดปุ่มย้อนกลับแล้วคุณจะมาที่บรรทัดใหม่ ป้อนข้อความ "นี่คือการทดสอบจากเซิร์ฟเวอร์ของฉัน" ติดตามข้อความโดยกดปุ่มย้อนกลับอีกครั้ง จากนั้นกดคีย์ผสมของ Control+D ดำเนินการต่อไป. พรอมต์คำสั่งจะถามคุณว่าคุณต้องการทำเครื่องหมายสำเนาของจดหมายไปยังที่อยู่อื่นหรือไม่ ให้กด Control+D อีกครั้ง. ตรวจสอบกล่องจดหมายของคุณ คำสั่งนี้จะส่งอีเมลไปยังรหัสอีเมลที่กล่าวถึงในหัวข้อ “สวัสดีชาวโลก”

ในการเพิ่มเนื้อหาไปยังเนื้อหาของเมลในขณะที่รันคำสั่ง คุณสามารถใช้ตัวเลือกต่อไปนี้ หากคุณต้องการเพิ่มข้อความด้วยตัวเอง:

# echo “สิ่งนี้จะเข้าสู่เนื้อหาของเมล” | mail -s “สวัสดีชาวโลก” you@youremailid.com

และถ้าคุณต้องการให้เมลอ่านเนื้อหาจากไฟล์:

# เมล -s “สวัสดีชาวโลก” you@youremailid.com

ตัวเลือกที่มีประโยชน์อื่นๆ ในคำสั่งเมล ได้แก่:

-หัวเรื่อง (หัวเรื่องของเมล)
-c email-address (ทำเครื่องหมายสำเนาของ "ที่อยู่อีเมล" หรือสำเนานี้)
-b ที่อยู่อีเมล (ทำเครื่องหมายสำเนาลับที่ "ที่อยู่อีเมล" นี้หรือ BCC)

คุณสามารถใช้ตัวเลือกเหล่านี้ได้อย่างไร:

# echo “ยินดีต้อนรับสู่โลกของ Calvin n Hobbes” | mail -s “สวัสดีชาวโลก” calvin@cnh.com -c hobbes@cnh.com -b susie.derkins@cnh.com

การใช้ MUTT สำหรับไฟล์แนบอีเมล

ข้อเสียที่สำคัญอย่างหนึ่งของการใช้คำสั่ง mail คือไม่รองรับการส่งไฟล์แนบ ในทางกลับกัน mutt ก็สนับสนุน ฉันพบว่าคุณลักษณะนี้มีประโยชน์อย่างยิ่งสำหรับสคริปต์ที่สร้างรายงานหรือข้อมูลสำรองที่ไม่ใช่ข้อความซึ่งมีขนาดค่อนข้างเล็ก ซึ่งฉันต้องการสำรองข้อมูลไว้ที่อื่น แน่นอน mutt ให้คุณทำมากกว่าแค่ส่งไฟล์แนบ เป็นโปรแกรมรับส่งเมลบรรทัดคำสั่งที่สมบูรณ์กว่าคำสั่ง "mail" ตอนนี้เราจะแค่สำรวจสิ่งพื้นฐานที่เราอาจต้องการบ่อยๆ วิธีแนบไฟล์ไปกับอีเมลมีดังนี้:

# สะท้อน "กำลังส่งไฟล์แนบ" | mutt -a backup.zip -s “สิ่งที่แนบมา” calvin@cnh.com

คำสั่งนี้จะส่งอีเมลไปที่ calvin@cnh.com โดยมีหัวข้อ (-s) "สิ่งที่แนบมา" ข้อความเนื้อหา "กำลังส่งไฟล์แนบ" ซึ่งมีไฟล์แนบ (-a) backup.zip เช่นเดียวกับคำสั่ง mail คุณสามารถใช้ตัวเลือก “-c” เพื่อทำเครื่องหมายสำเนาไปยังรหัสอีเมลอื่น

การส่งอีเมลจากเชลล์สคริปต์

ตอนนี้ ด้วยพื้นฐานที่ครอบคลุม คุณสามารถส่งอีเมลจากเชลล์สคริปต์ของคุณได้ นี่คือเชลล์สคริปต์ง่ายๆ ที่ให้คุณอ่านการใช้พื้นที่บนพาร์ติชั่นของคุณและส่งข้อมูลให้คุณทางไปรษณีย์

#!/bin/bash
df -h | mail -s “รายงานพื้นที่ดิสก์” calvin@cnh.com

บันทึกบรรทัดเหล่านี้ในไฟล์บนเซิร์ฟเวอร์ Linux ของคุณและเรียกใช้ คุณควรได้รับเมลที่มีผลลัพธ์ของคำสั่ง อย่างไรก็ตาม หากคุณต้องการส่งข้อมูลมากกว่านี้ คุณจะต้องเขียนข้อมูลลงในไฟล์ข้อความและป้อนลงในเนื้อหาเมลขณะเขียนเมล นี่คือตัวอย่างเชลล์สคริปต์ที่ได้รับการใช้งานดิสก์รวมถึงการใช้หน่วยความจำ เขียนข้อมูลลงในไฟล์ชั่วคราว แล้วป้อนข้อมูลทั้งหมดลงในเนื้อหาของเมลที่ส่งออก:

#!/bin/bash
df -h> /tmp/mail_report.log
free -m>> /tmp/mail_report.log
mail -s “disk and RAM report” calvin@ cnh.com

นี่เป็นปัญหาที่ซับซ้อนมากขึ้น คุณต้องสำรองข้อมูลไฟล์สองสามไฟล์แล้วส่งออกไป อันดับแรก ไดเร็กทอรีที่จะส่งออกไปจะถูกเก็บถาวร จากนั้นจะส่งเป็นไฟล์แนบอีเมลโดยใช้ mutt นี่คือสคริปต์ที่จะทำสิ่งนี้:

#!/bin/bash
tar -zcf /tmp/backup.tar.gz /home/calvin/files
echo | mutt -a /tmp/backup.tar.gz -s “สำรองข้อมูลรายวัน” calvin@cnh.com

เสียงสะท้อนที่จุดเริ่มต้นของบรรทัดสุดท้ายจะเพิ่มช่องว่างลงในเนื้อหาของจดหมายที่กำลังกำหนด

สิ่งนี้จะช่วยคุณในการเริ่มต้นส่งเมลจากบรรทัดคำสั่ง Linux และจากเชลล์สคริปต์ อ่าน "man page" สำหรับทั้ง mail และ mutt สำหรับตัวเลือกเพิ่มเติม (ป้อนคำสั่ง "man mail" และ "man mutt" สำหรับคู่มือฉบับเต็มในแต่ละฉบับ) จากนั้นใช้จินตนาการในสิ่งที่คุณสามารถทำได้ด้วยคำสั่งเมล เช่น ส่งรายงานอัตโนมัติถึงตัวคุณเอง