เป็นไปได้ไหมที่จะส่งไฟล์แนบทางอีเมลจากบรรทัดคำสั่ง?
ถ้าเป็นไปได้ฉันต้องการอะไรที่เรียบง่ายเหมือน:
mail -a myfile.txt -t me@example.com -s "Here's my file"
เป็นไปได้ไหมที่จะส่งไฟล์แนบทางอีเมลจากบรรทัดคำสั่ง?
ถ้าเป็นไปได้ฉันต้องการอะไรที่เรียบง่ายเหมือน:
mail -a myfile.txt -t me@example.com -s "Here's my file"
คำตอบ:
จากตัวแทนผู้ใช้จดหมายทั้งหมดในที่เก็บ Ubuntu ปรากฏว่าmuttเป็น MUA บรรทัดคำสั่งที่ได้รับการสนับสนุนจาก Long Term Support
ตามคู่มือคุณสามารถทำสิ่งที่ชอบ:
mutt -a myfile.txt -s "Here's my file" -- me@example.com
ยกเว้นว่ามันจะไม่ไปที่ใดก็ได้เนื่องจากต้องมี Mail Transfer Agent ด้วย สิ่งที่ได้รับความนิยมคือ:
และคนเดียวที่ยอมรับดูเหมือนว่าจะมีการสนับสนุน postfix (ขอบคุณสำหรับการแก้ไขสตีฟ) และexim4
หนึ่งอาจกล่าวได้ว่าxdg-emailนั้นเป็น Ubuntu MUA ที่เหมาะสม แต่มันเป็นส่วนหน้าของกระดูกที่เปลือยซึ่งจะดำเนินการMUA ที่คุณต้องการในนามของคุณ
หากคุณต้องการคำแนะนำว่า MTA ใดที่เหมาะกับการใช้งานของคุณอาจเปิดคำถามอื่นที่นี่
mutt
คำสั่งตัวอย่างทำงานตามที่โฆษณาไว้ อนึ่ง nullmailer มี sendmail front-end ปลอมเพื่อให้โปรแกรมส่วนใหญ่ที่คาดว่าจะคุยกับ sendmail ถูกสับเปลี่ยนไปที่ MTA จริงโดยไม่ต้องใช้ความพยายามใด ๆ จากฉัน
ฉันมีปัญหาในการส่งไฟล์แนบเช่นกัน เมื่อฉันส่งอีเมลโดยไม่มีสิ่งที่แนบมามันก็ประสบความสำเร็จ แต่ก็ไม่ได้แนบ ปัญหานี้มีอยู่ด้วยsendemail
, mutt
, mail
, mailx
, uuencode
คำสั่ง
โชคดีที่มันถูกแก้ไขอย่างสนุกสนาน ฉันใช้ Gmail เพื่อส่งอีเมล คุณสามารถกำหนดค่า Gmail ของคุณสำหรับการส่งอีเมล์ผ่านทางคำสั่งใน terminal เป็นประกาศที่ http://www.linuxandlife.com/2013/01/send-email-from-linux-terminal.html
คุณสามารถส่งอีเมลข้อความโดยใช้:
mail -s "hello" RECEIVE@mail.com < /home/masoud/YOURFILE.txt
แต่คุณไม่สามารถส่งไฟล์เดียวกับไฟล์แนบดังต่อไปนี้:
mail -s "hello" RECEIVE@mail.com -a /home/masoud/YOURFILE.txt
หรือ:
mail -s "hello" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com
ในที่สุดฉันเข้าใจว่ามีเพียงรูปแบบนี้เท่านั้นที่สามารถส่งไฟล์แนบ:
echo "your message here" | mail -s "title" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com
ความแตกต่างคือการมีอยู่ของคำสั่ง "echo"
ดูเหมือนว่า-a
ตัวเลือกจะถูกเปลี่ยนเป็นตัวพิมพ์ใหญ่ -A
สำหรับสิ่งที่แนบมาทันที -a
ดูเหมือนว่าจะมีการเปลี่ยนหัวตามdoc
.zshrc
ไฟล์ไปยังใครบางคนและแม้ว่าฉันจะใช้mail
มากในการส่งข้อความด่วน แต่การพยายามส่งไฟล์แนบไม่ทำงาน ฉันแค่ต้องการการยืนยันว่าเป็นไปได้ที่จะตระหนักว่าคำสั่งโต้แย้งนั้นสำคัญมาก สิ่งนี้ใช้ได้กับฉัน: mail -s "zshrc" -a ~/.zshrc username@example.com
... แน่นอนว่าฉันยังคงต้องพิมพ์เนื้อหาของข้อความและกดctrl+d
บรรทัดว่างสุดท้าย
mail username@example.com -a ~/.zshrc
"งาน" ในการส่งข้อความ แต่ไม่ได้ส่งไฟล์ ถ้าฉันลองmail username@example.com -a ~/.zshrc -s 'zshrc'
มันจะเห็นได้ชัดว่า params หลังจากที่อยู่ผู้รับถูกละเว้น
ฉันพบว่าคำสั่งและพารามิเตอร์มีการเปลี่ยนแปลงเมื่อเร็ว ๆ นี้
หากคุณต้องการส่งไฟล์แนบของคุณด้วยคำสั่งนี้:
mail -s "your subject" you@gmail.com -A /your/attachment/absolute/path < /home/you/message.txt
ตัวเลือกattachment
ควร-A
เป็นแบบA
ใด
คุณอาจต้องการส่งไฟล์จากเปลือกแต่อย่างอื่นใช้ธันเดอร์เบิร์ด
ในกรณีนี้ลองใช้thunderbird -remote ...
ประโยชน์ - โดยปกติสมมติว่า Thunderbird ทำงานอยู่:
คำสั่งเปิดหน้าต่างเขียนเมลของอินสแตนซ์ทันเดอร์เบิร์ดที่กำลังรันอยู่
ที่อยู่ "จาก" คือที่อยู่เริ่มต้นของคุณที่กำหนดค่าไว้ในธันเดอร์เบิร์ด
นอกจากนี้ยังใช้การตั้งค่าบัญชีที่มีอยู่โดยไม่จำเป็นต้องมีการตั้งค่าแยกต่างหาก
สำหรับจดหมายที่ถูกยึดyou@example.com
ติดกับหัวเรื่อง "S", เนื้อความ "B" และเอกสารแนบ/some/absolute/file.txt
คำสั่งคือ
thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='/some/absolute/file.txt')"
มีสองปัญหาคือ
ไฟล์แนบจะต้องได้รับจากเส้นทางที่แน่นอนซึ่งเป็นที่น่าเบื่อในทางปฏิบัติ ที่สามารถดำเนินการได้โดยใช้readlink -f
เพื่อแก้ไขเส้นทางสัมพัทธ์:
thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='$(readlink -f file.txt)')"
นอกจากนี้คำสั่งจะยาว ใช้เชลล์สคริปต์หรือฟังก์ชั่นเชลล์โดยมีสี่อาร์กิวเมนต์:
thunderbird-compose () {
thunderbird -remote "xfeDoCommand(composeMessage,subject='$1',to='$2',body='$3',attachment='$(readlink -f $4)')"
}
ด้วยฟังก์ชันนี้คำสั่งจะอ่านได้:
thunderbird-compose 'Some Subject' test@example.com 'Body of message' file1
จะเปิดหน้าต่าง "เขียน" ของธันเดอร์เบิร์ดพร้อมไฟล์แนบและจาก, ถึง, หัวเรื่องและเนื้อหาของข้อความซึ่งสามารถแก้ไขได้ก่อนส่ง
heirloom-mailx
แพคเกจในเดเบียนให้mailx
คำสั่งในการส่งไฟล์แนบ mime ได้อย่างง่ายดาย งานดังต่อไปนี้สำหรับฉัน;
mailx -a attachment.zip -s subject rctp@domain.to
mail
และmailx
มาพร้อมกับ RH-alikes มี-a
สำหรับไฟล์ที่แนบมา แต่อย่างหนึ่งที่รวมอยู่ในเดเบียนลุคไม่ได้
ฉันต้องการเพิ่มคำตอบอื่นที่ใช้ในการเพิ่มเนื้อความพร้อมกับไฟล์แนบ ไชโย !!
echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.com
mail
( ubuntu) บรรทัดคำสั่ง(akamailx
) คือไม่รู้ MIME ดังนั้นจึงไม่สามารถจัดการกับสิ่งที่แนบมาด้วยวิธีใดก็ตามที่ไม่ใช่ 1980 นี่เป็นคำถามที่ดีฉันกำลังมองหา Canonical MUA ของบัญญัติ; มากขึ้นที่จะมา