天天看點

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指令發送郵件,有如下三種方式:

mail -s "Hello from mzone.cc by shell" [email protected]

hello,this is the content of mail.

welcome to www.mzone.cc

      第一行是輸入的指令,-s表示郵件的主題,後面的[email protected]則是郵件的接收人,輸入完這行指令後回車,會進入郵件正文的編寫,我們可 以輸入任何文字,比如上面的兩行。當郵件正文輸入完成後,需要按CTRL+D結束輸入,此時會提示你輸入Cc位址,即郵件抄送位址,沒有直接回車就完成了 郵件的發送。

echo "hello,this is the content of mail.welcome to www.mzone.cc" | mail -s "Hello from mzone.cc by pipe" [email protected]

      使用管道直接敲入這行指令即可完成郵件的發送,其中echo後的是郵件正文。

mail -s "Hello from mzone.cc by file" [email protected] < mail.txt

      使用上面的指令後,我們就可以把mail.txt檔案的内容作為郵件的内容發送給[email protected]了。

      使用上述三種方式都可以給外部郵箱進行郵件發送,但因為前面2中都是直接在shell中敲入郵件内容,是以無法輸入中文,即使我們使用粘貼的方式輸入了 中文,那麼收到的郵件也是亂碼的。但第3種方式,我們可以在window下編輯好郵件内容後,放到linux下,再進行發送,這樣就可以正常發送中文了。 不過目前郵件的中文标題暫時沒有找到解決辦法。

      因為mail程式本身就是調用sendmail來進行郵件發送的,是以我們可以在mail指令中使用sendmail的參數進行配置,比如我想使用特定的發件人發送郵件,可以使用如下指令:

mail -s "Hello from mzone.cc with sender" [email protected] -- -f [email protected]<mail.txt

      很多情況下,我們也需要使用郵件來發送附件,在linux下使用mail指令發送附件也很簡單,不過首先需要安裝uuencode軟體包,這個程式是對二進制檔案進行編碼使其适合通過郵件進行發送,在CentOS上安裝該軟體包如下:

yum install sharutils

      安裝完成後我們就可以來進行附件的發送了,使用如下指令:

uuencode test.txt test | mail -s "hello,see the attachement" [email protected]<mail.txt

      完成後就可以把text.txt檔案作為郵件的附件發送出去了。uuencode有兩個參數,第一個是要發送的檔案,第二個是顯示的檔案名稱。

      這裡我主要介紹的是在CentOS下使用mail發送電子郵件的一些使用方法,需要的要求是你的linux必須安裝了sendmail并開啟了,同時保 證可以連接配接外網。另外,文章中提到的指令本人都經過親自測試,保證完全可用,不過你需要将指令中的電子郵件位址換成自己的電子郵件位址。

      有了這個mail指令,我們在linux下操作又多了一把利器了,perfect ^_^

本文轉自 bobo5900pro  51CTO部落格,原文連結:http://blog.51cto.com/bobo5900pro/896240,如需轉載請自行聯系原作者

繼續閱讀