Linux下使用mail命令发送邮件
因為需要經常備份網站的數據,所以了解并學習了下linux下如何通過shell來發送郵件,這里以CentOS為例,使用mail命令來進行外部郵件的發送。mail命令的語法如下:
Usage: mail [-iInv][-s subject][-c cc-addr][-b bcc-addr] to-addr ... [-- sendmail-options ...]mail [-iInNv]-f[name]mail [-iInNv][-u user]使用mail命令發送郵件,有如下三種方式:
1、直接使用shell當編輯器
mail -s"Hello from mzone.cc by shell" admin@mzone.cc hello,this is the content of mail. welcome to www.mzone.cc 第一行是輸入的命令,-s表示郵件的主題,后面的admin@mzone.cc則是郵件的接收人,輸入完這行命令后回車,會進入郵件正文的編寫,我們可以輸入任何文字,比如上面的兩行。當郵件正文輸入完成后,需要按CTRL+D結束輸入,此時會提示你輸入Cc地址,即郵件抄送地址,沒有直接回車就完成了郵件的發送。
2、使用管道進行郵件發送
echo"hello,this is the content of mail.welcome to www.mzone.cc"| mail -s"Hello from mzone.cc by pipe" admin@mzone.cc使用管道直接敲入這行命令即可完成郵件的發送,其中echo后的是郵件正文。
3、使用文件進行郵件發送
mail -s"Hello from mzone.cc by file" admin@mzone.cc < mail.txt使用上面的命令后,我們就可以把mail.txt文件的內容作為郵件的內容發送給admin@mzone.cc了。
使用上述三種方式都可以給外部郵箱進行郵件發送,但因為前面2中都是直接在shell中敲入郵件內容,因此無法輸入中文,即使我們使用粘貼的方式輸入了中文,那么收到的郵件也是亂碼的。但第3種方式,我們可以在window下編輯好郵件內容后,放到linux下,再進行發送,這樣就可以正常發送中文了。不過目前郵件的中文標題暫時沒有找到解決辦法。
因為mail程序本身就是調用sendmail來進行郵件發送的,因此我們可以在mail命令中使用sendmail的參數進行配置,比如我想使用特定的發件人發送郵件,可以使用如下命令:
mail -s"Hello from mzone.cc with sender" admin@mzone.cc ---f user@mzone.cc<mail.txt 上面的命令中,我們使用了– -f user@mzone.cc這樣的參數,這是sendmail的選項,其中-f表示郵件的發送人郵件地址。更多sendmail參數請查看這里http://www.courier-mta.org/sendmail.html,或者在shell中man sendmail進行幫助獲取。
很多情況下,我們也需要使用郵件來發送附件,在linux下使用mail命令發送附件也很簡單,不過首先需要安裝uuencode軟件包,這個程序是對二進制文件進行編碼使其適合通過郵件進行發送,在CentOS上安裝該軟件包如下:
yum install sharutils安裝完成后我們就可以來進行附件的發送了,使用如下命令:
uuencode test.txt test| mail -s"hello,see the attachement" admin@mzone.cc<mail.txt 完成后就可以把text.txt文件作為郵件的附件發送出去了。uuencode有兩個參數,第一個是要發送的文件,第二個是顯示的文件名稱。
這里我主要介紹的是在CentOS下使用mail發送電子郵件的一些使用方法,需要的要求是你的linux必須安裝了sendmail并開啟了,同時保證可以連接外網。另外,文章中提到的命令本人都經過親自測試,保證完全可用,不過你需要將命令中的電子郵件地址換成自己的電子郵件地址。
有了這個mail命令,我們在linux下操作又多了一把利器了,perfect ^_^
原文地址:http://www.mzone.cc/article/317.html
轉載于:https://blog.51cto.com/soarwilldo/1298785
總結
以上是生活随笔為你收集整理的Linux下使用mail命令发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何让LINUX程序运行在多CPU?
- 下一篇: [JAVAWEB实战篇]---Hiber