linux命令_【mail】命令

linux mail 命令參數:

使用mail發郵件時,必須先將sendmail服務啓動。

mail –s “郵件主題” –c”抄送地址” –b “密送地址” -- -f 發送人郵件地址 –F 發件人姓名 < 要發送的郵件內容

 

三種常用格式發信

 

  mail -s test [email protected] #第一種方法,你可以把當前shell當成編輯器來用,編輯完內容後Ctrl-D結束

  echo “mail content”|mail -s test [email protected] #第二種方法,我用的最多,可能是喜歡管道的緣故吧

  mail -s test [email protected] < file #第三種方法,以file的內容爲郵件內容發信

 

指定特定的發送人:

$ mail -s "just a test" 收信人郵箱地址 < 要發送的郵件內容文件 -- -f 發送人郵件地址 -F 發件人姓名

效果是: 信件內容將發送給 收信人郵箱,顯示的發送人爲 發送人姓名<發送人郵件地址>,顯示的內容爲 發送的郵件內容...

包含命令執行結果的MAIL發送:

echo -e `ls /tmp`|mail -s "test" [email protected] < /tmp/dd.txt -- -f [email protected] -F cc

 

i 忽略 tty 的中斷訊號。(interrupt)

I 強迫設成互動模式。(Interactive)

v 列印出訊息,例如送信的地點、狀態等等。(verbose)

n 不讀入 mail.rc 設定檔。

s 郵件標題。

c cc 抄送郵件地址。

b bcc密送郵件地址。

 

需要sendmail或postfix服務

 

如果單純的發文件文件可以用

cat xxxx.txt |mail -s "主旨" [email protected] [email protected]

 

如果需要發送附件需要安裝uuencode來編碼 (yum install sharutils)

 

單獨發附件,這樣[email protected]會收到一個data.txt的附件

uuencode /tmp/data_process.log  data.txt |mail [email protected]

 

如果需要正文和附件一起發:

uuencode /tmp/data_process.log  data.txt > /tmp/data_temp.txt

 

 

系統收到郵件都會保存在“/var/spool/mail/[linux用戶名]”文件中。在linux中輸入mail ,就進行了收件箱,並顯示二十封郵件列表。

 

此時命令提示符爲”&”:(可以輸入以下命令對郵件進行相關操作)

unread 標記爲未讀郵件

 

h|headers 顯示當前的郵件列表

 

l|list 顯示當前支持的命令列表

 

?|help 顯示多個查看郵件列表的命令參數用法

 

d 刪除當前郵件,指針並下移。 d 1-100 刪除第1到100封郵件

 

f|from 只顯示當前郵件的簡易信息。 f num 顯示某一個郵件的簡易信息

 

f|from num 指針移動到某一封郵件

 

z 顯示剛進行收件箱時的後面二十封郵件列表

 

more|p|page 閱讀當前指針所在的郵件內容 閱讀時,按空格鍵就是翻頁,按回車鍵就是下移一行

 

t|type|more|p|page num 閱讀某一封郵件

 

n|next|{什麼都不填} 閱讀當前指針所在的下一封郵件內容閱讀時,按空格鍵就是翻頁,按回車鍵就是下移一行

 

v|visual 當前郵件進入純文本編輯模式

 

n|next|{什麼都不填} num 閱讀某一封郵件

 

top 顯示當前指針所在的郵件的郵件頭

 

file|folder 顯示系統郵件所在的文件,以及郵件總數等信息

 

x 退出mail命令平臺,並不保存之前的操作,比如刪除郵件

 

q 退出mail命令平臺,保存之前的操作,比如刪除已用d刪除的郵件,已閱讀郵件會轉存到當前用戶家目錄下的mbox文件中。如果在mbox中刪除文件纔會 徹底刪除。在linux文本命令平臺輸入 mail -f mbox,就可以看到當前目錄下的mbox中的郵件了。

 

cd 改變當前所在文件夾的位置

 

寫信時,連按兩次Ctrl+C鍵則中斷工作,不送此信件。

 

讀信時,按一次Ctrl+C,退出閱讀狀態。

 

使用linux mail命令發送郵件:

 

1. 將文件當做電子郵件的內容送出

語法:mail -s “主題”用戶名@地址< 文件

例如:

mail -s “program” user < file.c 將file.c

 

當做mail的內容,送至user,主題爲program。

 

2. 傳送電子郵件給本系統用戶

語法:mail 用戶名

 

3. 傳送電子郵件至外地用戶

語法: mail 用戶名@接受地址

…/usr/lib/sendmail -bp

……“Mail queue is empty” ……mail ….

 

例如:

[email protected]

Subject : mail test

:

鍵入信文內容

: :

按下Ctrl+D 鍵或. 鍵結束正文。

連按兩次Ctrl+C鍵則中斷工作,不送此信件。

Cc( Carbon copy) : 複製一份正文,給其他的收信人。

 

4、將信件送給一個或以上的電子郵件地址。

 

由於沒有加入其他的選項,使用者必須輸入標題與信件的內容等。而 user2 沒有主機位置,就會送給郵件服務器的 user2 使用者。

mail [email protected]

mail [email protected] user2

將 mail.txt 的內容寄給 user2 同時 cc 給 user1 。如果將這一行指令設成 cronjob 就可以定時將備忘錄寄給系統使用者。

mail -s 標題 -c user1 user2 < mail.txt

 

5. 檢查所傳送的電子郵件是否送出,或滯留在郵件服務器中

語法:/usr/lib/sendmail -bp

若屏幕顯示爲“Mail queue is empty” 的信息,表示mail 已送出。

若爲其他錯誤信息,表示電子郵件因故尚未送出。

 

linux mail利用外部郵箱地址發郵件

 

bin/mail會默認使用本地sendmail發送郵件,這樣要求本地的機器必須安裝和啓動Sendmail服務,配置非常麻煩,而且會帶來不必要的

 

資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的smtp服務器發送郵件的目的:

 

修改/etc/nail.rc (/etc/mail.rc)

 

set [email protected] smtp=smtp.domain.comset smtp-auth-user=username smtp-auth-password=passwordset smtp-auth=login

說明:

 

from是發送的郵件地址

 

smtp是發生的外部smtp服務器的地址

 

smtp-auth-user是外部smtp服務器認證的用戶名

 

smtp-auth-password是外部smtp服務器認證的用戶密碼

 

smtp-auth是郵件認證的方式

 

配置成功後,就可以使用了

 

可以發送一封郵件測試一下:

 

mail -s "test" [email protected] <content.txt 其中-s後面的是郵件標題,[email protected]是收件人地址,content.txt裏面是郵件正文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章