52AV手機A片王|52AV.ONE

標題: linux 下 mail 指令大全 [打印本頁]

作者: IT_man    時間: 2016-4-15 17:22
標題: linux 下 mail 指令大全
寄信:5 c1 q, R  {/ a- ^/ v1 T3 |
參數說明:6 J4 R' u4 \" z5 O9 S
-s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”$ d, l5 g8 y/ o! A0 }
-a 想在信件中夾帶附加檔案,用這個參數就對了。
0 q' R; t( P- a- p例 :-a ~/testfile
) s1 |4 V0 g6 l; S-c 指定信件的副本。
6 n" p6 L5 q  |& ^例 :-c barry,vivian2 d6 y* H+ U/ W# p8 c6 e- t
-b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。
# D: B% d9 g$ R! ?例 :-b mary,[email protected]& s2 w# \. t, P" l1 N3 }1 v
-q 以指定的檔案做為信件的起始內容。
9 [$ U. r+ I$ P例: -q ~/mailfile+ s* J! X& M' M& `" n6 P8 E2 D
-r 設定 mail from 的郵件地址。
9 y) F- _5 O. v例:-r [email protected]: |, u+ o  |% W$ Q+ N2 n' i
-u 讀取使用者的 mailbox。
* F: T5 \' r3 Y+ E例 :-u barry
. [3 L1 J: g# [1 d-f 讀取使用者的 mailbox。! w6 g- b& N: U5 W6 V0 @- ~
例 :-f /var/spool/mail/barry
4 f, p+ {* }8 t7 {; A) N
, F0 T* j- b9 L7 e
( U+ w/ \+ M; S* I) d6 z

) f/ k2 o) x2 ^! G& B* t$ W將content.txt文件的內容寄出(非附件寄出)
3 N( t4 N4 ~& a3 C# cat content.txt ||mail -s "mail test" [email protected]. E. a# B" }# Z) T: |$ g
或者& J8 Y1 _% G7 q  w9 o) T
$ y2 g( x  _& k" ~3 }
# mail -s "This is a test" [email protected] < content.txt
6 p% |9 H& j- P' a% _1 D2 n1 ^編輯模式寄出:0 ^4 v8 ^4 v( k8 F/ T
# mail [email protected]
5 l1 f: b+ D9 B! Y% v  vSubject: This is a test mail
5 J1 @# k1 x3 |There are writing area!
7 Q4 ~# |9 r1 K5 l$ y4 yYou can't use the Up/Down button in this form.../ L: V+ Q* f/ b
you can finish with "."
4 p2 {  \: l, @& G$ `! ~.  <==這個『.』就是結束符號!要正常離開編輯畫面就是 . !
- U# K3 c/ R: r+ M! }, a6 K: B4 u2 R; n9 v/ G( r4 z6 t  F
mail/mailx命令使用外部SMTP來發送郵件/ a& o' [2 T7 q  a2 r' f
/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:. E6 m* E# u$ k+ [' W- W7 i
修改/etc/mail.rc 加入底下設定:
( j8 R$ g& S! z* Q
  1. set [email protected] smtp=domain.com, f& F* R/ d, R  Q+ d
  2. set smtp-auth-user=username smtp-auth-password=password2 ^% {- A! E: D) [* k& Y
  3. set smtp-auth=login
複製代碼
說明:
5 d" Z  \4 l& Q: z; Yfrom是發送的郵件地址
, C( `, L& a4 \* u3 O6 t$ T& Msmtp是發生的外部smtp服務器的地址
" G' V/ Q* _. ?% c- V& r! nsmtp-auth-user是外部smtp服務器認證的用戶名
4 w% R1 L3 }: T# \: H! Z, I5 z' G9 bsmtp-auth-password是外部smtp服務器認證的用戶密碼( W  l& V( C7 m5 a: N4 H
smtp-auth是郵件認證的方式3 M! }, b3 z8 I7 Y  r
配置成功後,就可以使用了,可以發送一封郵件測試一下:
9 |  K, q% y  H9 _+ Z# mail -s "test" [email protected] < content.txt4 p$ Q: V# ?9 F( C: q( U+ S7 t1 M
在linux下利用Google的SMTP來發郵件& \' U0 t; ?# H* N+ E
9 ?# E8 `( |, H; P/ |
在维護伺服器的時候,經常需要建立一個伺服器錯誤抱錯系统,而郵件是一個很好的工具。
2 @  {, O  D+ N2 Z2 H在linux下,一般是透過mail來寫郵件,而傳遞默認使用sendmail服務。這樣雖然能向外界發送郵件,但郵件不能回復,並且sendmail服務要求發送方是系统可試别用户,配置比較麻煩。下面是透過使用Google的SMTP伺服器來發送郵件,不但减輕負担,而且可以使用類似的公共郵件地址來作為發送方。  R9 A/ N' K$ r: S# n8 j

/ C2 ^! d" @7 q2 Q) x7 n9 k# a$ r+ m& G) i

2 F6 b9 h$ {! r0 w3 R% m下面所有步骤,全部基於CentOS 5.11,其他發行版本類似。- }2 L  N. ~, T6 t
1.安装mail
/ Y- |/ y$ O2 H3 T* Oyum install mailx -y
# m) Y# n- X  d* C, I8 [7 M6 T# B0 e+ j7 W! f" A
2.如果想直接使用sendmail來發送郵件,需要啟動sendmail服務,或者saslauthd服務
! J! _. v( A6 w0 g3 ?8 `. L2 {/ M7 M0 e8 @
3.如果想利用外部SMTP來送郵件,需编輯/etc/mail.rc,加入以下内容
- k) A3 [9 w! e3 P4 C: |set [email protected]2 J2 z' d  \( L# }& h" z
set smtp=smtp.qq.com  6 g3 R- s& |: a3 H8 `6 D: t1 n" e
set smtp-auth-user=demo   R$ l; R4 Q: p- a/ q# s  j
set smtp-auth-password=demopass - U7 ]. B  R1 m  _; l5 \
set smtp-auth=login
+ }( P( U6 _% c: u) X7 X/ E) g/ f但是這個設置只適合那些支持非ssl鏈接的SMTP伺服器,但對於想Google,强制使用SSL加密鏈接的,需根據第4步配置mail
* ~* N! a" F3 W) }$ W( M- w4 I5 d- ]: _! F
4.利用Google的SMTP發送郵件: |: {  j1 k0 y9 p3 X
在裝有 Firefox 的 Linux 主機, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 與 key*.db 複製到 ~/.mozilla_nss_shared_db
. Y5 a9 A; G: ]2 O8 A0 s, F7 R编輯/etc/mail.rc,加入以下内容1 d! \1 U3 a, E, {
set ssl-verify=ignore
7 ]  ~3 P2 L3 t) `& Nset nss-config-dir=~/.mozilla_nss_shared_db, H( Z' g# o3 e
set from="[email protected](myname)"9 r! ]# C. O* G/ U9 k) V
set smtp=smtps://smtp.gmail.com:465
/ F1 j4 F) E5 ~+ D' G  kset smtp-auth=login, ~$ [0 Q, \2 e8 A& D1 a. L
set smtp-auth-user=myaccount
6 `" L6 D1 p8 r$ f7 A6 D" [set smtp-auth-password=mysecret
7 S# }3 x# e' r9 r9 F. B: S% ?. O
8 z! w5 _( G- F如果想添加多個帳號,那就這樣寫配置文件
  @0 b  L5 y4 q( h$ haccount starttls {
1 v* q7 m/ Y+ W$ }5 R, ], _3 |set smtp-use-starttls
* f- T  r& ]: C0 W, Tset ssl-verify=ignore
9 t7 P: X! c: t8 X0 jset nss-config-dir=~/.mozilla_nss_shared_db" D7 o( P( r% e# q' g/ R
set from="[email protected](myname)"+ W0 w6 d- z- H2 [1 d
set smtp=smtp://my.smtp.host:251 k8 _: X' c2 R4 }% r' _
set smtp-auth=login
0 a& f) p0 z# _- Qset smtp-auth-user=myaccount# L/ v2 n) O8 B3 S- }: c0 Q( Z
set smtp-auth-password=mysecret
/ p4 Q# }+ m9 D; E4 P+ j: E}6 @+ F2 j! z2 V5 F: X) ]3 z
account gmail {1 f% L) i+ v9 [' v( ?( e2 \
set ssl-verify=ignore
; X: F+ l2 A& B2 k- f7 T- sset nss-config-dir=~/.mozilla_nss_shared_db' a( F; k. D, `. z* ]9 m
set from="[email protected](myname)") b7 b: \- q+ T  U
set smtp=smtps://smtp.gmail.com:465
  B3 i" T% d4 _3 e! e3 ~2 aset smtp-auth=login
( g) O5 u: v: [+ w4 uset smtp-auth-user=myaccount
; D, }5 e; R' U0 Oset smtp-auth-password=mysecret% L$ F9 H" ?/ a! J# R" I
}
/ a7 D; i. k/ I1 S不過在發送郵件的時候,需要用-A参數指定發送帳號,比如-A gmail" q+ z% g+ q# X2 c( J8 a3 m% B7 q
但經我測試好像沒作用
) O' H+ B. ?% w) z/ C% I讀信:#mail
8 z# u: P; h: R5 p. m: T; y4 B假如讀信時空間已滿,可以查看 /var/spool/mail之下哪一個使用者檔案最大,例如 root(一般也是root最大),將它清空:% a; ?! b, {3 v3 Q
#> /var/spool/mail/root/ @" M) F7 Q- O
在執行 mail 就可正常讀信了$ z; Z* h9 P  j3 h+ G6 e& ~

$ ~7 W. \9 K9 L
3 R: A6 Q' M* U7 P& q* G% C1 ~
請參考:
- i' S9 L* X) shttp://linux.vbird.org/linux_server/0380mail.php#mua_mail
2 ~2 m- ^& n# E1 W9 ~
: C5 Q9 e8 Q6 z$ y2 U. Q




歡迎光臨 52AV手機A片王|52AV.ONE (https://www.itech.casa/) Powered by Discuz! X3.2