mailx使用點滴

liangxichen發表於2011-05-31

mailx,曾命名nail,是一個比較小型的電子郵件傳送和讀取的程式,slackware下mail命令就是用它。

在預設的情況下, 它將郵件發往本地的MTA(Mail Transfer Agent)(比如使用Sendmail、Qmail、Postfix、等提供的服務)

它的全域性配置放在/etc/nail.rc,使用者個人配置放在$HOME/.mailrc。
要配置用外部SMTP伺服器發信,在個人的 .mailrc 新增內容:
set from=user@tom.com smtp=smtp.tom.com
set smtp-auth-user=your_E-mail_address smtp-auth-password=your_password
set smtp-auth=login
說明:from 就是傳送者的郵件地址,就是你自己的一個可用的郵件地址。
smtp 是指提供郵件服務的主機,比如smtp.tom.com; smtp.126.com等
smtp-auth-user 是指你在服務主機上的郵箱使用者名稱
smtp-auth-password 當然是你在smtp主機上的密碼
smtp-auth 驗證方式了

因為配置中提供的密碼是明文的,所以最好 chmod 600 .mailrc,以免洩密。

發郵件

mail [ -s Subject ] [ -c Address(es) ] [ -dinNv ] Address

標誌

-c Address(es) 指定要向其傳送訊息副本的使用者列表。可以指定一個或多個地址。當指定多於一個地址時,地址列表必須在引號("")內。
-e 測試系統郵箱內是否有郵件。如果存在要讀取的郵件,mail 實用程式不會寫入任何東西並帶一個成功返回碼而退出。
-f FileName 從指定的檔案讀取訊息。如果沒有指定檔案運算元,那麼從 mbox 讀取訊息。從讀取訊息退出時,未刪除的訊息會寫到這個檔案中。
-F 將訊息記錄在以收件人命名的檔案中。該名稱是在郵件標題中 To: 行的地址的最前部分。如果設定則覆蓋 record 變數。
-H 僅寫標題摘要。
-i 忽略 tty 中斷訊號。
-n 禁止讀取 /usr/share/lib/Mail.rc 檔案。
-N 禁止標題的初始列印。
-s Subject 指定將建立的訊息的主題。
-u UserID 指定與執行 mail -f /var/spool/mail/UserID 等同的縮寫。為指定的使用者的郵箱啟動 Mail 程式。必須有指定郵箱的訪問許可權。
-v 將 Mail 程式置為詳細方式。顯示傳送到使用者終端的詳細資訊。

例如:
mail user@tom.com,mail -s "test" user2, mail user3
傳送附件

uencode $attachement1 $attachement2 | mailx -s "test" user@abc.com

郵件正文來源於letter.txt,郵件標題為“test”,把attch.jpg做為附件:
mailx -s "test" " user@abc.com<< EOF
> $(cat letter.txt)
> $(uuencode attch.jpg)
> EOF

uuencode 編碼後的資料都以 begin 開始,以 end 作為結束。 使用方式:uuencode [-hv] [sourcefile] targetfile 引數:
h 列出指令使用格式 (help)
v 列出版本訊息 (version)

file_1=$1


SUBJ="Send mail from Unix with file attachments"
TO=root
CC=root
(
cat << EOF
To : ${TO}
Subject : ${SUBJ}
Cc : ${CC}
Mime-Version: 1.0
Content-Type: text/html; charset=utf-8
EOF

cat << EOF
HOPE THIS WORKS
This sample E-mail message demonstrates how one can attach
files when sending messages with the Unix sendmail utility.
EOF

uuencode ${file_1} ${file_1##*/}
# uuencode ${file_2} ${file_2##*/}
# uuencode ${file_3} ${file_3##*/}

) | sendmail -v ${TO} ${CC}

[@more@](uuencode file1 file1;
uuencode file2 file2;
uuencode file3 file3)|mail -s "This is a test mail" tony770228@hotmail.com

cat abc.txt|uuencode|mailx root

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/59792/viewspace-1050606/,如需轉載,請註明出處,否則將追究法律責任。

相關文章