|
|
寄信:
J, ]* A9 A6 k- R& G5 Y參數說明:$ q# J6 y0 j9 }+ V
-s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”
' d- x4 R; Q6 m8 y0 F-a 想在信件中夾帶附加檔案,用這個參數就對了。
3 y5 x% F7 }; {) p3 E例 :-a ~/testfile
& w' q4 H" D8 X-c 指定信件的副本。4 |6 k$ l5 N e% f, f0 }, ^
例 :-c barry,vivian
. K: T4 @' Z+ s. a: A! X$ n-b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。
5 [( J1 g( Z5 ~! D# _/ Y例 :-b mary,[email protected]
- D/ z% _& S! L: Q( W5 f-q 以指定的檔案做為信件的起始內容。
% y- y9 R2 Y, b例: -q ~/mailfile" n0 E* e) l& |% D, c7 a
-r 設定 mail from 的郵件地址。& K7 r8 n" d: w: L
例:-r [email protected]+ ]8 @2 I2 |" D
-u 讀取使用者的 mailbox。; o+ N) o' _/ Q; A
例 :-u barry8 L) T" `: g7 g# C% c! d
-f 讀取使用者的 mailbox。. ^, K+ I' M3 \# t1 Q! ^
例 :-f /var/spool/mail/barry$ u7 F+ ^7 R1 o. \2 x: Y& A
) E; Y+ m& ~+ u5 l) f5 D! N7 K* c) K3 B' I! ^& r6 x; y7 G5 l8 }# o
( N0 |# s d4 u/ W2 x" v5 i將content.txt文件的內容寄出(非附件寄出)
! B: a1 m% L5 Z) O& l* \, x+ S# cat content.txt ||mail -s "mail test" [email protected]
7 z5 ~0 h2 X" T) a k& v5 C; T或者0 a: F B; s' n& a5 e
9 `' T) B2 _! v9 {5 D! m# mail -s "This is a test" [email protected] < content.txt7 b" c$ n6 @& Y/ Z/ }
編輯模式寄出:
. }' u* K& O3 D- U9 K# mail [email protected]
4 U/ ]+ N( U" {$ _7 w; nSubject: This is a test mail! c$ H& f. q" J# r
There are writing area!
. S: v) e: g6 P7 e0 Y+ vYou can't use the Up/Down button in this form...
* H% U. M- L- Z# Q8 @you can finish with "."
3 |$ D% Y! j3 M# \% I4 O$ }. <==這個『.』就是結束符號!要正常離開編輯畫面就是 . !+ ]. n8 o& z9 B* ^
' n1 N% ]: Y7 ]( m0 z2 Fmail/mailx命令使用外部SMTP來發送郵件
" |* ] J1 R! h( k/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:$ ~! ?7 N: d( q+ [* S' |" L
修改/etc/mail.rc 加入底下設定:
. X* [# }2 N1 z+ i0 @' g- set [email protected] smtp=domain.com$ j. v- O) L/ v2 p( A( k( M9 T: a
- set smtp-auth-user=username smtp-auth-password=password7 C5 m; K, r. _+ x% b" h
- set smtp-auth=login
複製代碼 說明:6 z6 v7 C P* q o ^ _6 v
from是發送的郵件地址
0 ]7 v+ I/ L% @, e# r1 W. psmtp是發生的外部smtp服務器的地址
* m7 A& }' i* y$ R9 ^2 x3 s+ }smtp-auth-user是外部smtp服務器認證的用戶名. F$ R3 d7 w& l) U8 q' f$ _3 b8 j
smtp-auth-password是外部smtp服務器認證的用戶密碼
; ^2 p. S% C. Q9 _# S& \4 Ksmtp-auth是郵件認證的方式
; b; |# M9 d2 ]+ s+ ?) v$ c7 y/ l配置成功後,就可以使用了,可以發送一封郵件測試一下:
/ d W, n, p; A& D% K+ ]# mail -s "test" [email protected] < content.txt
8 g! }" u! _7 ^: k3 |! N在linux下利用Google的SMTP來發郵件 Z; v' A2 }& T. n8 |' g
5 N, @! S5 f2 i1 N o
在维護伺服器的時候,經常需要建立一個伺服器錯誤抱錯系统,而郵件是一個很好的工具。" [) J( Q H! Z
在linux下,一般是透過mail來寫郵件,而傳遞默認使用sendmail服務。這樣雖然能向外界發送郵件,但郵件不能回復,並且sendmail服務要求發送方是系统可試别用户,配置比較麻煩。下面是透過使用Google的SMTP伺服器來發送郵件,不但减輕負担,而且可以使用類似的公共郵件地址來作為發送方。
5 @8 K3 o8 }" C
7 W1 ~2 K Z9 h8 U( w2 l
E5 Y( U/ I4 C1 X. Y+ G) i" E8 @0 v& f! n3 E
下面所有步骤,全部基於CentOS 5.11,其他發行版本類似。1 @* g! Z7 i% A: E( j
1.安装mail
7 p) p& |0 ~( b% j) Jyum install mailx -y
( x g: Z ~* W9 O# y9 K- g# F. D. W4 t1 I+ K5 p: q# `3 `
2.如果想直接使用sendmail來發送郵件,需要啟動sendmail服務,或者saslauthd服務7 J9 p, K& ]6 y2 r, i* |: ]
. T9 E: t/ z7 l) b, e) C3.如果想利用外部SMTP來送郵件,需编輯/etc/mail.rc,加入以下内容( W2 m- x7 k2 b9 p/ T
set [email protected]
1 q# ]4 R; [5 x2 Dset smtp=smtp.qq.com
4 V; N* k: f" Aset smtp-auth-user=demo
/ M! I6 G1 x: J/ }) l9 Bset smtp-auth-password=demopass
* ^; ~' D2 Z2 m# e' e" f/ f" d6 Rset smtp-auth=login: l! {3 T- j3 M C S. t q
但是這個設置只適合那些支持非ssl鏈接的SMTP伺服器,但對於想Google,强制使用SSL加密鏈接的,需根據第4步配置mail3 l* t' q7 {$ _9 d8 B' z
0 P8 J2 o% J( m& K9 ]' b4.利用Google的SMTP發送郵件( u: n' _8 a( z, s/ K
在裝有 Firefox 的 Linux 主機, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 與 key*.db 複製到 ~/.mozilla_nss_shared_db/ E1 I1 O6 l/ S! P
编輯/etc/mail.rc,加入以下内容
! r' c; q0 k' ~9 Vset ssl-verify=ignore" f' q2 E* G7 D+ l4 n1 ?% X% g
set nss-config-dir=~/.mozilla_nss_shared_db0 o& d s% ~9 d2 ?+ b2 y, p
set from="[email protected](myname)"( h5 p. T+ v# _: z. v
set smtp=smtps://smtp.gmail.com:465
# Z( N# |3 U3 u% Eset smtp-auth=login+ v1 ? J: k9 [+ c' ? }
set smtp-auth-user=myaccount1 i$ Z+ A% ?6 f, h, m! }
set smtp-auth-password=mysecret c V' `6 ~& _* k" [: R6 L) P" {
0 ~, \9 x/ ?( ~# B4 r- Z
如果想添加多個帳號,那就這樣寫配置文件8 w! I8 Q+ @+ P3 r
account starttls {% a) \. T" G' |/ h) `8 u& k" r
set smtp-use-starttls# k& D4 \& D2 E3 P7 N3 a
set ssl-verify=ignore
( I/ E& J1 P7 D; d% ^( gset nss-config-dir=~/.mozilla_nss_shared_db
: y' S" v6 z5 x: fset from="[email protected](myname)"+ K% g# W( ?+ q G1 B5 m
set smtp=smtp://my.smtp.host:25' f1 _8 h# ~' |/ @7 D
set smtp-auth=login
0 B& M6 z h0 o' B! h/ [set smtp-auth-user=myaccount
+ G7 N4 M) t/ l J& l, X7 |set smtp-auth-password=mysecret
/ T) a$ f! c* p# x}
$ s: N7 B; _" p( Taccount gmail {
* |) _: z% x3 R- K/ t2 ?; I" Y$ Tset ssl-verify=ignore* F3 i9 P. N4 ]" S% f( N
set nss-config-dir=~/.mozilla_nss_shared_db ?! w& U! `' e7 Y# F; k0 x3 t. u
set from="[email protected](myname)". W. ]# O" W# h3 @* ? `8 B
set smtp=smtps://smtp.gmail.com:465
8 u. p l2 K- J5 b: I( aset smtp-auth=login) ]7 e6 z' _5 q1 v
set smtp-auth-user=myaccount
7 | z) S' J' kset smtp-auth-password=mysecret
7 q' s5 Y; T- I$ |5 M}4 u$ w7 G+ P) V+ w6 W- d7 Q
不過在發送郵件的時候,需要用-A参數指定發送帳號,比如-A gmail. Y% ]1 ]* N- Q$ G! m* ?# V: r$ l$ \
但經我測試好像沒作用+ {1 k4 L8 O' {" s( t
讀信:#mail
& [5 R- }8 E/ W, P6 M假如讀信時空間已滿,可以查看 /var/spool/mail之下哪一個使用者檔案最大,例如 root(一般也是root最大),將它清空:
1 M+ I( a4 M1 `7 v; Y1 L( j#> /var/spool/mail/root' X8 |$ F9 ~: g8 u, h2 ^& _
在執行 mail 就可正常讀信了
3 z$ \( y& X- I% p
$ N! y, C5 y2 m$ |/ E
1 c/ _8 X6 W- E( b& @請參考:
B! u6 C, W% V1 o* K. Khttp://linux.vbird.org/linux_server/0380mail.php#mua_mail
( @' I/ j: y1 J1 k% C6 b: R6 Y$ W) A* v. @4 j) {
|
|
|