|
寄信:1 t1 P$ [0 ?' X8 J) o5 R
參數說明:
) M7 l/ Y) R S! f! h3 v-s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”
2 L$ T) R% V/ a0 Y/ D; R6 B" ?* Q% R-a 想在信件中夾帶附加檔案,用這個參數就對了。
( \( u! A3 N, q4 n+ K9 W例 :-a ~/testfile
* q4 R: ?, }- ^- X8 B$ f3 r! W-c 指定信件的副本。
5 z {9 z+ Z! n5 B& R3 R例 :-c barry,vivian0 s3 i* N5 ?" {8 t G
-b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。2 @+ b4 m* n) z
例 :-b mary,[email protected]
. s# t. E5 G' _% y! q1 n( Q$ O-q 以指定的檔案做為信件的起始內容。
* o+ I0 G" _; w6 |0 \例: -q ~/mailfile
$ F1 g6 Y' a- A$ u6 i7 E5 F( _-r 設定 mail from 的郵件地址。' f! [3 C3 P& I3 Z3 @+ @; p" L
例:-r [email protected]
r5 g2 v8 _( U a-u 讀取使用者的 mailbox。2 M5 Q+ x# ?$ m; ~. b; y7 _0 Y. T
例 :-u barry
5 B6 K- S/ R8 `# d+ }1 s-f 讀取使用者的 mailbox。
+ Q; v# L3 @ I5 Q! P例 :-f /var/spool/mail/barry% @/ Y0 i/ I) \
% U" p: A- R0 w* \3 J8 F1 J# R* ~9 n5 D/ \5 \4 }$ N
( x) @/ _+ F' A0 U! q- [: S% b將content.txt文件的內容寄出(非附件寄出)% n5 f F8 S9 P: j/ x
# cat content.txt ||mail -s "mail test" [email protected]
( J3 a) F( i2 m3 a: {( Q或者2 ]# p( {! ?0 I3 Z5 i' z
( _8 K0 ]' I% t( j# C
# mail -s "This is a test" [email protected] < content.txt, @6 ~2 J4 ]% o
編輯模式寄出:
- G% Q) ^5 O0 m# mail [email protected]
9 D- p: A7 q+ Y6 eSubject: This is a test mail/ H& K) V, Q" g$ m. k4 M
There are writing area!; d; b4 f+ T) f% `9 ]0 h! }
You can't use the Up/Down button in this form...
4 G9 S4 z* Y/ w0 E* F0 m1 E+ syou can finish with "."6 Z) k5 {2 O7 ]! a* O9 _% `( M
. <==這個『.』就是結束符號!要正常離開編輯畫面就是 . !
( s( Q/ n' D4 k! }$ I0 I1 O5 N: c2 B7 \, ^, n \
mail/mailx命令使用外部SMTP來發送郵件
& k1 q% X( N7 L" t4 K. B3 b/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:
4 \" Y* o$ ?: L4 K( [4 Q修改/etc/mail.rc 加入底下設定:2 b* R* ] ^8 D: i5 x b
- set [email protected] smtp=domain.com" F0 c2 l" k. C! t% F# d3 A2 O! F& x
- set smtp-auth-user=username smtp-auth-password=password
" k8 `8 W) c# V6 I7 |+ b - set smtp-auth=login
複製代碼 說明:# w) r( W5 x5 ]) w% w5 `0 C
from是發送的郵件地址% I5 u$ q! e& R% |5 I' d
smtp是發生的外部smtp服務器的地址
- C& f; @# ^) V3 O4 Wsmtp-auth-user是外部smtp服務器認證的用戶名9 |$ t2 \8 U. W) b- K
smtp-auth-password是外部smtp服務器認證的用戶密碼, G% U& ]* n) T3 _7 ^- l: q' |
smtp-auth是郵件認證的方式, \& u& z) \( C6 _+ Y0 C
配置成功後,就可以使用了,可以發送一封郵件測試一下:
- l: w4 ?8 f7 ^: e6 J( I# mail -s "test" [email protected] < content.txt
' B8 w1 h- g6 a6 Z) E- T在linux下利用Google的SMTP來發郵件
% a! ^8 L* L% H) K6 z2 W& t0 p) p' n0 X3 _. B- M
在维護伺服器的時候,經常需要建立一個伺服器錯誤抱錯系统,而郵件是一個很好的工具。
" U) o: p! j4 V/ \ G' }. G在linux下,一般是透過mail來寫郵件,而傳遞默認使用sendmail服務。這樣雖然能向外界發送郵件,但郵件不能回復,並且sendmail服務要求發送方是系统可試别用户,配置比較麻煩。下面是透過使用Google的SMTP伺服器來發送郵件,不但减輕負担,而且可以使用類似的公共郵件地址來作為發送方。$ _ A% {, e: p4 E
# f; s. s! p$ c$ f! B
" y3 s( y4 U3 t- e, C e
f) a& R6 d& T: b$ ]4 [' g7 M7 E下面所有步骤,全部基於CentOS 5.11,其他發行版本類似。
9 C$ [3 |6 F$ M8 D2 d1.安装mail5 j9 |- g$ w) d( \/ V
yum install mailx -y
; }4 w4 |9 H" z! }, A1 a$ u, l: c6 J: p+ x' ^; ]
2.如果想直接使用sendmail來發送郵件,需要啟動sendmail服務,或者saslauthd服務
0 |+ [- z; ]. [8 `6 X3 z( _; C# Q6 a3 i% j7 v* X! ^# w* S
3.如果想利用外部SMTP來送郵件,需编輯/etc/mail.rc,加入以下内容
% h9 t7 R' c# \- r& d& b) \2 `$ Nset [email protected]
: Q7 Z9 }+ D0 a7 O) G; f0 i0 Iset smtp=smtp.qq.com
+ H7 h! U. g6 d1 Aset smtp-auth-user=demo 2 q% }& {. p; Z
set smtp-auth-password=demopass ; X: |) @' k, e( {% s+ E
set smtp-auth=login3 C. r1 B# n9 r1 L! n9 T% X
但是這個設置只適合那些支持非ssl鏈接的SMTP伺服器,但對於想Google,强制使用SSL加密鏈接的,需根據第4步配置mail+ _. S1 _& p# d' M% Y
, u% z3 D8 l0 G9 w+ \& h4.利用Google的SMTP發送郵件
5 h: ^( ?5 S5 R在裝有 Firefox 的 Linux 主機, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 與 key*.db 複製到 ~/.mozilla_nss_shared_db
/ d' @- _, } f% t, L+ M" F编輯/etc/mail.rc,加入以下内容0 B \- f) Z! a7 T8 ?
set ssl-verify=ignore
0 b& N0 W6 f" ^set nss-config-dir=~/.mozilla_nss_shared_db1 T0 Y a1 G& Y- ]8 L
set from="[email protected](myname)"+ Q- E/ c* u3 b( t
set smtp=smtps://smtp.gmail.com:465
! r- }- K( S+ J& u' o9 d3 Y7 e) Dset smtp-auth=login1 W3 p: |/ j& y4 P$ Q ~; H
set smtp-auth-user=myaccount0 ^' B; ^+ t" V" t/ Z& A, @+ Y. Z
set smtp-auth-password=mysecret
1 \2 g9 v, C/ l/ J
& P, ]7 o) G( r# B+ }/ \如果想添加多個帳號,那就這樣寫配置文件
. |4 q P B( Zaccount starttls {
, S* J2 H1 V7 B6 bset smtp-use-starttls9 z( ~# Z5 n. c4 h
set ssl-verify=ignore
4 t& B0 Q* |9 l. wset nss-config-dir=~/.mozilla_nss_shared_db' `4 ]1 ]$ w% O1 b
set from="[email protected](myname)"
2 }- y" a5 k; I: A$ b% [set smtp=smtp://my.smtp.host:25
2 K8 e1 N% S" q2 hset smtp-auth=login0 T! f' I6 M" G5 [
set smtp-auth-user=myaccount, }/ q4 M3 ^7 P/ q
set smtp-auth-password=mysecret# @, t" f8 t! i" L3 m( P4 w# k) ]
}3 a! n( R% d* e) a1 | R3 W
account gmail {
' [3 w+ c( c3 g5 E- w# a4 K7 pset ssl-verify=ignore
# ^3 s" i, ^+ W# ]4 P6 Hset nss-config-dir=~/.mozilla_nss_shared_db
9 z) }( h) L' E" ?set from="[email protected](myname)"
& p4 d# [( m, y) O% @8 R- Oset smtp=smtps://smtp.gmail.com:465% L+ h$ ]) M# B% \; d
set smtp-auth=login% C8 n. X! S% k; y- ?
set smtp-auth-user=myaccount
4 m6 ]- C$ O+ B/ ^$ L1 mset smtp-auth-password=mysecret& ^: Y! C* M% Q. E a9 s$ {' A
}% u8 u4 F1 H2 r9 P
不過在發送郵件的時候,需要用-A参數指定發送帳號,比如-A gmail
6 g5 x6 y1 M( H9 @但經我測試好像沒作用
( Q' T0 g0 B: A( P5 b讀信:#mail
3 w5 C" d5 k- ]. e3 p假如讀信時空間已滿,可以查看 /var/spool/mail之下哪一個使用者檔案最大,例如 root(一般也是root最大),將它清空:
9 y: O( P: @6 U7 a( b ?#> /var/spool/mail/root
# o, p- I) b) l9 }; C* u' v在執行 mail 就可正常讀信了
3 v+ l5 P" ?. p( Q; Z5 |( c) j3 Q* o6 R. E6 v5 f4 r' b5 H
, N& w0 j- d8 i8 o& Y# A( c3 m
請參考:
2 I0 Y- i- d" Mhttp://linux.vbird.org/linux_server/0380mail.php#mua_mail3 U) R' n4 H( L1 n: M
2 V& x" L/ t! r% T& T* t& M
|
|
-->
|