標題: linux 下 mail 指令大全 [打印本頁] 作者: IT_man 時間: 2016-4-15 17:22 標題: linux 下 mail 指令大全 寄信: * }; \2 U/ c! ]1 D8 W參數說明: 1 P Y( a( {, R-s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”. J& T+ V+ Z3 ^) C) B
-a 想在信件中夾帶附加檔案,用這個參數就對了。 # l- } b9 C6 _; U f) h例 :-a ~/testfile- Y# H8 S3 L' K& z K) U
-c 指定信件的副本。: n+ |: b# X! L+ u+ ^
例 :-c barry,vivian3 x3 F: m4 t7 d' j$ E
-b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。 2 S0 A+ V* F* D# [ Z g例 :-b mary,tina@msa.hinet.net , C5 B- r( Q; B# o* @7 f-q 以指定的檔案做為信件的起始內容。4 H2 `- A# y ~# v
例: -q ~/mailfile 3 e, o! [7 G7 i! K9 ?9 v-r 設定 mail from 的郵件地址。 1 J! a: k2 m$ r6 {8 f例:-r admin@paching.idv.tw$ K" K! d2 M+ q J" I$ Q
-u 讀取使用者的 mailbox。 ( _/ q& n3 u- M0 l; V4 D5 P) m例 :-u barry/ n" p- b6 U; X! i" Y7 E0 @$ \
-f 讀取使用者的 mailbox。; @4 r/ y8 ?% e' X: x, r
例 :-f /var/spool/mail/barry) X. n3 ?' c; Z$ B6 W9 f
, z( K9 @1 Y3 I/ t 1 a$ L3 s6 E) k& W9 G! t ^2 z2 Z- s1 _# _4 D
將content.txt文件的內容寄出(非附件寄出)0 Q3 t8 X m" Y6 S5 L- W8 f' Q
# cat content.txt ||mail -s "mail test" test@gmail.com* s+ R. Q, ?& l
或者 6 g' `" t, ^7 Z. b* l$ K/ V$ o1 u5 P' S8 X, Q- n% g o% c& M
# mail -s "This is a test" aa@aa.com < content.txt * ^# [0 L6 [* o& {% N編輯模式寄出:; G2 [5 {$ n/ z! M; u5 o* P1 r
# mail kevin@av4u.info- H0 u; \+ [7 p. K1 l$ ^
Subject: This is a test mail # G- _3 j9 f! y* P. Q% X& MThere are writing area!7 M6 N; M2 H# g
You can't use the Up/Down button in this form... + Z$ G9 U, L2 P0 M8 w/ r( ryou can finish with "."1 g. M3 U n9 d, P1 _! Y- ]8 B
. <==這個『.』就是結束符號!要正常離開編輯畫面就是 . ! B- Y9 M! f/ o( r& M A* @. M
6 t7 ]/ R2 ^5 ?: e5 d' _' y/ e mail/mailx命令使用外部SMTP來發送郵件. N* e( b& M S) H+ l
/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:' p- I& J$ X+ M& B
修改/etc/mail.rc 加入底下設定:% L/ l" L$ U( Z1 o( I
set from=fromuser@domain.com smtp=domain.com w+ u# u% A% @ L7 c$ k, k
set smtp-auth-user=username smtp-auth-password=password / M2 I# J3 V) U3 R8 i& O
set smtp-auth=login
複製代碼
說明:1 U- D _% ^2 V! H; W- F
from是發送的郵件地址7 g4 c' l1 r& K' @
smtp是發生的外部smtp服務器的地址# e9 x5 x' f* C. M" @$ v
smtp-auth-user是外部smtp服務器認證的用戶名- W' h- |0 Y9 ^6 x. G# n& R; {
smtp-auth-password是外部smtp服務器認證的用戶密碼 " U( V) z" @( g/ C; f, k ^( osmtp-auth是郵件認證的方式( g5 F) X" X( G. l' F5 _3 d
配置成功後,就可以使用了,可以發送一封郵件測試一下:) G2 i3 `! H1 i9 y! Y- C
# mail -s "test" user@domain.com < content.txt# P: j, W% y" F2 h5 A+ Q 在linux下利用Google的SMTP來發郵件 8 ^ T; b6 H9 I% q2 U/ e7 d5 } : H! ^ m* Y- @6 f& m在维護伺服器的時候,經常需要建立一個伺服器錯誤抱錯系统,而郵件是一個很好的工具。+ F7 A6 q! T1 X U' [7 A
在linux下,一般是透過mail來寫郵件,而傳遞默認使用sendmail服務。這樣雖然能向外界發送郵件,但郵件不能回復,並且sendmail服務要求發送方是系统可試别用户,配置比較麻煩。下面是透過使用Google的SMTP伺服器來發送郵件,不但减輕負担,而且可以使用類似的公共郵件地址來作為發送方。. F Q$ P# s, b
2 z' @8 J A" c' x6 `: L" W
( o, Z/ O& ~6 ]3 |' ]$ y0 \$ g
- J% i- m- R1 f- g
下面所有步骤,全部基於CentOS 5.11,其他發行版本類似。 1 D; M: j9 T! g3 g: q1.安装mail% D: o/ [; _2 a# S
yum install mailx -y 2 v# E2 ^" L0 P. D0 y* O. H ; b3 `) W8 T9 e* m0 g. }2.如果想直接使用sendmail來發送郵件,需要啟動sendmail服務,或者saslauthd服務6 O% ]- m( ~( {1 w9 h* j
$ r! i2 C9 N( f2 l
3.如果想利用外部SMTP來送郵件,需编輯/etc/mail.rc,加入以下内容- Q8 W- {; Q! N
set from=demo@qq.com2 `' U7 @! F% n- }+ L, U9 ?
set smtp=smtp.qq.com ) ^1 [9 v- p9 `5 Jset smtp-auth-user=demo , {9 ?2 C/ T1 Q: P' j& f2 E
set smtp-auth-password=demopass " r* T9 A7 q, Q# H* t: yset smtp-auth=login / `) h7 f) D" g. G. [; p; M* I但是這個設置只適合那些支持非ssl鏈接的SMTP伺服器,但對於想Google,强制使用SSL加密鏈接的,需根據第4步配置mail' r4 @3 J3 O+ _, d3 }9 U9 Y2 c
- M0 x i2 e% l, n9 l4.利用Google的SMTP發送郵件 * s0 `- I1 W* E在裝有 Firefox 的 Linux 主機, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 與 key*.db 複製到 ~/.mozilla_nss_shared_db0 R6 ?: t ]& E- k" D
编輯/etc/mail.rc,加入以下内容 * Y* s' c2 F( o; `/ lset ssl-verify=ignore 4 f6 H& M+ e8 m. b6 E$ nset nss-config-dir=~/.mozilla_nss_shared_db; P9 w* l; d) Q l3 ?
set from="myaccount@gmail.com(myname)"- Q2 j0 R# I J# Q0 {+ a
set smtp=smtps://smtp.gmail.com:465$ ]: H( i5 a8 y2 Z, ~( }4 N
set smtp-auth=login % C! ]- K" f, L0 ?3 p# O, \8 ?set smtp-auth-user=myaccount! w' w! o% L) y% B
set smtp-auth-password=mysecret ; m' \3 F+ {6 M% F( M ; y* v# ^8 o3 ~1 z如果想添加多個帳號,那就這樣寫配置文件 3 d2 T' q" W4 [2 }- p4 }+ Z& l- ?account starttls { , V1 |, |! X" k* K P4 J$ Lset smtp-use-starttls% m9 p1 I$ D! W! M! u7 R* J: S
set ssl-verify=ignore2 n# M* B8 {" i- k F6 T% r0 S
set nss-config-dir=~/.mozilla_nss_shared_db$ v. t. V& B3 |
set from="myaccount@my.smtp.host(myname)"+ j% _1 G( ~+ h7 D o- ~/ b( u6 e
set smtp=smtp://my.smtp.host:25 5 M3 q: J b( oset smtp-auth=login" M. ^- F) m5 o; M. F
set smtp-auth-user=myaccount4 |1 E* e0 j1 I
set smtp-auth-password=mysecret. f k4 g: d- w! b, F
} + x/ T; N$ k) P9 caccount gmail {6 @* j; j8 S; b9 L5 s
set ssl-verify=ignore " f, O, P0 K6 n4 _5 e5 f2 J5 oset nss-config-dir=~/.mozilla_nss_shared_db4 R1 l% U6 f2 b9 x/ S, S* b. n
set from="myaccount@gmail.com(myname)" 2 h! o/ ~4 d g% q: y- G, I& jset smtp=smtps://smtp.gmail.com:465 ' f' b) o% S; d& @set smtp-auth=login / z3 K# X; v# Y: j. cset smtp-auth-user=myaccount7 k2 u3 ?% ~# w; T+ Q8 N2 U+ j
set smtp-auth-password=mysecret" k5 `! |, U( |& y4 B; i
} 8 {2 F7 N' R4 ]5 J* ^% `$ A不過在發送郵件的時候,需要用-A参數指定發送帳號,比如-A gmail % e9 G3 r) k4 u+ m但經我測試好像沒作用! V, |" ^% P6 [$ F0 E
讀信:#mail ; E) A/ ~9 | g8 m1 s2 \假如讀信時空間已滿,可以查看 /var/spool/mail之下哪一個使用者檔案最大,例如 root(一般也是root最大),將它清空:' S1 ?; e4 k6 S& H8 n& h
#> /var/spool/mail/root; c% [5 |6 E( p9 }3 N- I2 e" x8 \
在執行 mail 就可正常讀信了 7 V, Z2 H' P2 J2 O6 I. y; `/ e+ l) |. X3 ~4 c; q
+ h! ~* a2 A \$ _0 |
請參考: 1 e" L& D8 x; Z1 Thttp://linux.vbird.org/linux_server/0380mail.php#mua_mail ; g6 k) ?, ~, g( G. z) T2 B; j 9 s- q: t( Y$ C5 e$ F# m5 }# T