|
|
寄信:
- J9 q6 P6 e" L( W+ N/ g, i參數說明:% N6 j+ d X" v7 o
-s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”
: @- V( q) d) R5 F6 y-a 想在信件中夾帶附加檔案,用這個參數就對了。
: p8 p! A" d: c' d. r/ l1 _9 w7 Q例 :-a ~/testfile
& g& h. O. m+ b% N2 F0 O. t E-c 指定信件的副本。7 d# j' d( i! q9 L4 k2 \: F
例 :-c barry,vivian
, K: g A, ]% N5 n% C( H-b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。1 d+ v) c8 T2 e7 I- q6 @
例 :-b mary,[email protected]9 m+ ]+ H5 A4 f v& o
-q 以指定的檔案做為信件的起始內容。4 b1 }. [) y" C% K' Q
例: -q ~/mailfile
9 P/ ?9 v" `; S9 s- ~3 x7 y6 g-r 設定 mail from 的郵件地址。
1 E$ D& O+ B! O# f* }& w) q例:-r [email protected] v0 Y, |% a2 X2 K7 ]6 Q1 n
-u 讀取使用者的 mailbox。
4 O+ f' o5 B; C/ i/ s* y例 :-u barry
0 N; o( ` Z2 w. `9 K-f 讀取使用者的 mailbox。2 Z6 ?3 o: d S) T, P& U' }
例 :-f /var/spool/mail/barry3 h, d* F; G, }! L: d2 j B
; W! f9 f1 `4 [. E, V
% E5 `7 ?- I9 e! Q- [3 u, j
3 ?& B6 r; c- c" C" K將content.txt文件的內容寄出(非附件寄出)8 R5 x: _" j- K/ r
# cat content.txt ||mail -s "mail test" [email protected]
6 n7 v2 ?, k- l6 N( m或者
; F7 }5 p& w% K% z$ M7 z' M3 [# b6 ]& \1 d. U1 p1 H6 v
# mail -s "This is a test" [email protected] < content.txt
0 \# W0 W* c- @- R U8 { f5 J編輯模式寄出:- l, ]& }( M" L3 B( b2 K
# mail [email protected]
0 g# D9 f2 }4 P( [! W& j6 K" {Subject: This is a test mail3 ~" j- N# Z& f" E( Q6 l& v
There are writing area!3 O6 c K0 U' m2 b* A& x
You can't use the Up/Down button in this form...
7 A, z4 ?& P5 p& @you can finish with "."
' P$ c( Z, W$ Y# d" J2 \! g. <==這個『.』就是結束符號!要正常離開編輯畫面就是 . !
6 [9 C. z( f; m1 i- j- `5 Q [2 }! K7 c
mail/mailx命令使用外部SMTP來發送郵件% p$ O# F5 {- r5 b
/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:
) p+ z9 S5 @1 m y8 }9 l修改/etc/mail.rc 加入底下設定:; Z, J, ?& E' I& [% h
- set [email protected] smtp=domain.com
' Q7 E4 x# @0 z! D! f9 N: x# r - set smtp-auth-user=username smtp-auth-password=password$ p7 e# {1 {) A# K! `3 G
- set smtp-auth=login
複製代碼 說明:9 J+ Y0 G+ v! T6 b8 r
from是發送的郵件地址9 C) {! Y% I; G( M g* ]+ Z
smtp是發生的外部smtp服務器的地址* @9 N) Q" q$ G; E! e7 y5 j7 \
smtp-auth-user是外部smtp服務器認證的用戶名7 L* u/ f2 {* v
smtp-auth-password是外部smtp服務器認證的用戶密碼. t( B7 D" p5 ]& G! V3 G
smtp-auth是郵件認證的方式
& @( E$ ]# A3 t9 M配置成功後,就可以使用了,可以發送一封郵件測試一下:0 | |% K! L7 L% {
# mail -s "test" [email protected] < content.txt
5 U4 h. [. a- {( w: ~& f在linux下利用Google的SMTP來發郵件
4 \! @8 \4 i0 n _5 U* _
( o8 m: ?* q, }4 Q# N2 A. K& J在维護伺服器的時候,經常需要建立一個伺服器錯誤抱錯系统,而郵件是一個很好的工具。
% r* u, X* ^) Q S. O) T$ [" |% c在linux下,一般是透過mail來寫郵件,而傳遞默認使用sendmail服務。這樣雖然能向外界發送郵件,但郵件不能回復,並且sendmail服務要求發送方是系统可試别用户,配置比較麻煩。下面是透過使用Google的SMTP伺服器來發送郵件,不但减輕負担,而且可以使用類似的公共郵件地址來作為發送方。+ _5 n. W$ K: q' K! L1 a# C
. w8 h- j) b Q: _0 q
: E" c5 N* U8 `) e6 a
4 A* z+ X. a- \6 s* n1 v) l: t" A
下面所有步骤,全部基於CentOS 5.11,其他發行版本類似。
: P" Q8 f5 L3 y0 K2 z6 W$ d1.安装mail6 j# j( k$ G# G! N
yum install mailx -y. e" X5 b9 @: Y, x7 A
* f0 {% F$ P* w3 S" V% ~' d. p
2.如果想直接使用sendmail來發送郵件,需要啟動sendmail服務,或者saslauthd服務
9 i* }& z5 ?* a* m. I9 W
. e' I- I+ N3 I8 B7 q3.如果想利用外部SMTP來送郵件,需编輯/etc/mail.rc,加入以下内容' N9 }* P K; C1 x0 I
set [email protected]4 Y. C4 C! S+ U4 J4 T
set smtp=smtp.qq.com ' R0 M' j6 b& A9 { j1 H
set smtp-auth-user=demo
0 h8 B6 {0 O4 v# ?4 H# xset smtp-auth-password=demopass 0 B z. U0 G) k, S
set smtp-auth=login
( n: c4 d, h1 P- Y3 d但是這個設置只適合那些支持非ssl鏈接的SMTP伺服器,但對於想Google,强制使用SSL加密鏈接的,需根據第4步配置mail2 Z4 H5 y0 S3 {2 E, f) B
5 [$ c2 }, S; N8 w4 b4.利用Google的SMTP發送郵件
' ^* u* w, B. _4 o7 E在裝有 Firefox 的 Linux 主機, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 與 key*.db 複製到 ~/.mozilla_nss_shared_db) i% P1 G( L' R3 d
编輯/etc/mail.rc,加入以下内容5 H" _& [$ r, O/ h% h
set ssl-verify=ignore! v1 Y; A: x, a- P) G
set nss-config-dir=~/.mozilla_nss_shared_db
% \' z; v" b* oset from="[email protected](myname)"
& Y. @, V5 h9 u( Mset smtp=smtps://smtp.gmail.com:4656 E$ _5 r" u: _- x8 l% Y1 w/ V) K3 w
set smtp-auth=login
2 n6 i h% z0 y% l: A" wset smtp-auth-user=myaccount
) P* D0 A/ x- c5 j$ Eset smtp-auth-password=mysecret! B* \) Q& d& N- \- s. s6 ^
/ J& M. \5 p! A9 d0 w0 V6 w. V如果想添加多個帳號,那就這樣寫配置文件
% @/ [8 a0 N1 z( A' f) gaccount starttls {
0 `. L! B4 g' Q2 y0 g& N6 c" i3 }set smtp-use-starttls
* ]5 X' P% t) L. C& l, ?) }set ssl-verify=ignore) v8 `9 [7 q5 y
set nss-config-dir=~/.mozilla_nss_shared_db% o8 M8 {7 B5 U3 b( F* v
set from="[email protected](myname)"
; X% Z, \; E- b% K( vset smtp=smtp://my.smtp.host:252 p, Y* p; h5 D2 F1 x; W# P5 g
set smtp-auth=login
5 @" j- n" H+ a( o) cset smtp-auth-user=myaccount. N* r, T e2 Y1 F. n
set smtp-auth-password=mysecret1 ]2 D: ^! k0 {3 @
}
* F4 w" e8 ~3 g7 U2 u) F7 t9 Jaccount gmail {
* j# b) k _; j4 w& ^set ssl-verify=ignore- r5 ^0 l% b* K* f4 Q" J4 E
set nss-config-dir=~/.mozilla_nss_shared_db
( J) y% u, h9 q- F" H* D4 C$ Rset from="[email protected](myname)"2 i7 W6 M; w$ k$ g; K! K
set smtp=smtps://smtp.gmail.com:465( Z4 P3 V. C% o0 j8 Y" W$ F- I8 y
set smtp-auth=login7 ~& w4 g2 |4 a* O S
set smtp-auth-user=myaccount
2 k+ B1 \9 ?# u' C6 _: e8 E# Uset smtp-auth-password=mysecret* p6 R- g3 Y y3 L) l
}5 }( u$ V- X! h3 x4 e
不過在發送郵件的時候,需要用-A参數指定發送帳號,比如-A gmail
! b: x3 e( G" f& X但經我測試好像沒作用
2 ]# J, l# G* ^" k讀信:#mail* U2 N" S- @6 ?# F0 Z. w% s
假如讀信時空間已滿,可以查看 /var/spool/mail之下哪一個使用者檔案最大,例如 root(一般也是root最大),將它清空:
' a8 N4 l W5 O#> /var/spool/mail/root
9 p1 O( c) }! ^在執行 mail 就可正常讀信了/ C2 S# F) H5 @
6 _% V1 O: N' X: j1 D4 Q% @8 r7 D' A0 T
請參考:$ b$ [- y( A2 F/ b) @4 y H: F6 S
http://linux.vbird.org/linux_server/0380mail.php#mua_mail$ p. k3 [- S+ q; o
9 z$ Q2 m! I& `6 v! t5 N6 ^
|
|
|