Ubuntu mail命令傳送郵件【記錄】

語言: CN / TW / HK
 

ubuntu server 14.04 從命令列發郵件

安裝mailutils

sudo apt-get install mailutils
 

接下來進行預設安裝就行了。Postfix Configuration
這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述
需要記住這裡的System mail name,後面會用到。

傳送郵件

  • 用一行命令傳送郵件

給郵箱[email protected](改成你自己要傳送的郵箱)發封郵件。郵件主題為Test email from ubuntu server!,內容為Here is the message body.。

mail -s "Test email from ubuntu server!" [email protected] <<< 'Here is the message body.'
echo 'Here is the message body.' | mail -s "Test email from ubuntu server!" [email protected]
 

以上兩條命令可以得到同樣的效果。其中,-s 引數指定郵件的主題。
執行以上命令後,去郵箱([email protected])裡檢視是否收到郵件。如果收件箱裡沒有,可能在垃圾郵件裡。

  • 使用mail的命令提示傳送郵件

[email protected] 傳送郵件,並抄送給[email protected]。郵件主題為Test Subject,內容為Merry christmas

mail -s 'Test Subject' [email protected]
 

輸入該命令後回車,提示Cc:,這時輸入抄送郵件地址[email protected],然後回車。
繼續輸入郵件正文內容Merry christmas,正文輸入結束後,按Ctrl-D 結束輸入併發送郵件。

  • 從檔案中讀取郵件內容併發送

給郵箱[email protected]傳送郵件,郵件主題為Text message,郵件內容為/home/user/message.txt中的內容 。

mail -s 'Text message' example@qq.com < /home/user/message.txt
 
  • 抄送與密件抄送

[email protected]傳送郵件 ,並抄送給[email protected],並密件抄送給[email protected]

mail -s 'Subject' user1@qq.com -c user2@qq.com -b user3@qq.com < message.txt
 

-c表示抄送 ,-b表示密件抄送 。-c: carbon copy, -b: blind carbon copy。
[貌似沒有這兩個引數了。]

  • 給多個郵箱傳送郵件
mail -s 'Subject' user1@qq.com,user2@qq.com,user3@qq.com < message.txt
 
  • 指定發件人姓名和地址
echo "This is the message body" | mail -s "subject" [email protected] -aFrom:[email protected] 
 

使用-a引數追加郵件頭資訊,用來指定發件人姓名和地址。
或者

echo "This is the message body" | mail -s "subject" [email protected] -aFrom:John\<[email protected]\>
 
  • 給本機的其他使用者傳送郵件
mail -s "hello, this is a test!" username
 
mail -s "hello, this is a test!" username@ubuntu 
 

這兩種方法等價,第二種中的ubuntu是當前系統的主機名(hostname),見安裝部分的最後一張圖,系統郵件名預設的是主機名,也是ubuntu。

新增附件

echo "This is the message body" | mail -s "subject" user@qq.com -A /path/to/attached_file
 

使用-A引數為郵件新增附件。

或者使用另一個命令列工具–Mutt。

-> 安裝

 sudo apt-get install mutt
 

-> 使用

傳送簡單郵件

echo "This is a mutt test" | mutt -s "This is mutts subject" [email protected]
 

傳送附件郵件:

mutt -s "Subject" -a /path/to/file_to_attached -- [email protected] < /home/user/mailcontent.txt 
 

-a引數新增附件(attach),後面跟附件所在的路徑;mailcontent.txt是郵件正文內容。
注意:附件檔案和收件人之間需要使用–分隔。

shell指令碼傳送郵件

寫一個shell指令碼將硬碟使用情況傳送到郵箱。使用du -sh檢視硬碟使用情況。

#!/bin/bash 
#filename: report_disk_usage_to_email.sh
du -sh | mail -s "disk usage report" [email protected]
在第一部分–[安裝mailutils]中的第三個圖中可以看到,我的yourmaildomain.com是ubuntu。

儲存後退出編輯,然後執行該指令碼,命令為:sh report_disk_usage_to_email.sh。

檢視郵件

檢視郵件直接在命令列裡輸入mail就列出了所有的郵件狀態, 如圖所示。如果沒有未讀郵件,則返回No mail for user。
這裡寫圖片描述

在第三行顯示有7封郵件,其中3封未讀。
第二列是郵件編號,最後一列是郵件主題,中間是收件日期。
最後一行?提示符表示等待輸入命令。

輸入郵件編號,回車後就可以開啟該郵件進行閱讀。
輸入z回車後退後郵件列表。
輸入q回車後退出。