IT_man 發表於 2016-4-15 17:22:25

linux 下 mail 指令大全

寄信:
參數說明:
-s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”
-a 想在信件中夾帶附加檔案,用這個參數就對了。
例 :-a ~/testfile
-c 指定信件的副本。
例 :-c barry,vivian
-b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。
例 :-b mary,tina@msa.hinet.net
-q 以指定的檔案做為信件的起始內容。
例: -q ~/mailfile
-r 設定 mail from 的郵件地址。
例:-r admin@paching.idv.tw
-u 讀取使用者的 mailbox。
例 :-u barry
-f 讀取使用者的 mailbox。
例 :-f /var/spool/mail/barry



將content.txt文件的內容寄出(非附件寄出)
# cat content.txt ||mail -s "mail test" test@gmail.com
或者

# mail -s "This is a test" aa@aa.com < content.txt
編輯模式寄出:
# mail kevin@av4u.info
Subject: This is a test mail
There are writing area!
You can't use the Up/Down button in this form...
you can finish with "."
.<==這個『.』就是結束符號!要正常離開編輯畫面就是 . !

mail/mailx命令使用外部SMTP來發送郵件
/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:
修改/etc/mail.rc 加入底下設定:
set from=fromuser@domain.com smtp=domain.com
set smtp-auth-user=username smtp-auth-password=password
set smtp-auth=login說明:
from是發送的郵件地址
smtp是發生的外部smtp服務器的地址
smtp-auth-user是外部smtp服務器認證的用戶名
smtp-auth-password是外部smtp服務器認證的用戶密碼
smtp-auth是郵件認證的方式
配置成功後,就可以使用了,可以發送一封郵件測試一下:
# mail -s "test" user@domain.com < content.txt
在linux下利用Google的SMTP來發郵件

在维護伺服器的時候,經常需要建立一個伺服器錯誤抱錯系统,而郵件是一個很好的工具。
在linux下,一般是透過mail來寫郵件,而傳遞默認使用sendmail服務。這樣雖然能向外界發送郵件,但郵件不能回復,並且sendmail服務要求發送方是系统可試别用户,配置比較麻煩。下面是透過使用Google的SMTP伺服器來發送郵件,不但减輕負担,而且可以使用類似的公共郵件地址來作為發送方。



下面所有步骤,全部基於CentOS 5.11,其他發行版本類似。
1.安装mail
yum install mailx -y

2.如果想直接使用sendmail來發送郵件,需要啟動sendmail服務,或者saslauthd服務

3.如果想利用外部SMTP來送郵件,需编輯/etc/mail.rc,加入以下内容
set from=demo@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=demo
set smtp-auth-password=demopass
set smtp-auth=login
但是這個設置只適合那些支持非ssl鏈接的SMTP伺服器,但對於想Google,强制使用SSL加密鏈接的,需根據第4步配置mail

4.利用Google的SMTP發送郵件
在裝有 Firefox 的 Linux 主機, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 與 key*.db 複製到 ~/.mozilla_nss_shared_db
编輯/etc/mail.rc,加入以下内容
set ssl-verify=ignore
set nss-config-dir=~/.mozilla_nss_shared_db
set from="myaccount@gmail.com(myname)"
set smtp=smtps://smtp.gmail.com:465
set smtp-auth=login
set smtp-auth-user=myaccount
set smtp-auth-password=mysecret

如果想添加多個帳號,那就這樣寫配置文件
account starttls {
set smtp-use-starttls
set ssl-verify=ignore
set nss-config-dir=~/.mozilla_nss_shared_db
set from="myaccount@my.smtp.host(myname)"
set smtp=smtp://my.smtp.host:25
set smtp-auth=login
set smtp-auth-user=myaccount
set smtp-auth-password=mysecret
}
account gmail {
set ssl-verify=ignore
set nss-config-dir=~/.mozilla_nss_shared_db
set from="myaccount@gmail.com(myname)"
set smtp=smtps://smtp.gmail.com:465
set smtp-auth=login
set smtp-auth-user=myaccount
set smtp-auth-password=mysecret
}
不過在發送郵件的時候,需要用-A参數指定發送帳號,比如-A gmail
但經我測試好像沒作用
讀信:#mail
假如讀信時空間已滿,可以查看 /var/spool/mail之下哪一個使用者檔案最大,例如 root(一般也是root最大),將它清空:
#> /var/spool/mail/root
在執行 mail 就可正常讀信了


請參考:
http://linux.vbird.org/linux_server/0380mail.php#mua_mail

頁: [1]
查看完整版本: linux 下 mail 指令大全