|
|
寄信:
6 z+ w( {1 k+ Z" p( t' D" H參數說明:' l9 S9 v9 Q$ x) r/ k8 m
-s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”
6 @+ C9 c5 x9 E2 J& }% d/ e-a 想在信件中夾帶附加檔案,用這個參數就對了。
* v E3 `. ?/ A4 B% I/ Z例 :-a ~/testfile
; @+ c N: `* n6 O* j-c 指定信件的副本。4 J) T% G2 K( r, t
例 :-c barry,vivian) M. g' q/ X# A, ]' W0 d( m
-b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。
$ F+ F2 r: Y) ]5 m6 _; m例 :-b mary,[email protected]
) W1 f+ ^4 ^5 M, ^3 o( C% T9 V-q 以指定的檔案做為信件的起始內容。
) e; {8 {) s6 {7 H例: -q ~/mailfile3 c/ d6 y5 _: T: @
-r 設定 mail from 的郵件地址。
- S# a9 M4 g5 ~; g' _: G4 j% Y例:-r [email protected]
4 q6 n7 \5 c$ N-u 讀取使用者的 mailbox。
% M% l* f2 ~5 N/ d* z( z$ b例 :-u barry5 x) b L5 l, P; L4 B
-f 讀取使用者的 mailbox。
' c0 O% z) _$ ?9 D- z5 {1 V4 s; S例 :-f /var/spool/mail/barry
& C7 a. z- s9 d% M
. y F/ s8 ]+ @- M
, A! a$ t4 W0 I( q6 m' P1 t" W; x# K8 k
將content.txt文件的內容寄出(非附件寄出)
1 y# T2 p6 e" d3 v# cat content.txt ||mail -s "mail test" [email protected]
( j' u8 k4 `2 O; o3 N9 D2 A4 o或者% V- Z" h/ c$ s r h
) G& Q5 T1 I% T9 ?3 `% h+ v
# mail -s "This is a test" [email protected] < content.txt
2 \3 v0 N* C$ }0 W \編輯模式寄出:
9 k# \9 V8 z' w. f6 ~# mail [email protected]
7 y0 G$ N D O! bSubject: This is a test mail6 g$ i9 j" g7 [1 o
There are writing area!
" K) N3 Y: m2 @$ a; O5 d% MYou can't use the Up/Down button in this form...
' t* E* N1 s9 p5 n7 ~ A; ~0 ~you can finish with "."8 \8 L, [4 H% L9 @& f+ o( ?' a
. <==這個『.』就是結束符號!要正常離開編輯畫面就是 . !
5 g8 L! Q$ T; @( @% E7 S3 F" X( L7 j! g
mail/mailx命令使用外部SMTP來發送郵件
4 |! d7 X9 x( [# p/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:; T5 J+ N6 a/ ^+ ~( n# U/ `
修改/etc/mail.rc 加入底下設定:$ n3 V9 r: f, c2 M, X( E H1 v
- set [email protected] smtp=domain.com/ ~" r* V- Z$ C0 L$ T% P! v3 q2 c
- set smtp-auth-user=username smtp-auth-password=password' N3 R' o; D" X& H& y3 x( _: i1 ~1 }
- set smtp-auth=login
複製代碼 說明:
8 F g$ ]" ]: i C- e0 L0 A& a3 [from是發送的郵件地址$ i4 `, p4 Q# T! @1 w! A
smtp是發生的外部smtp服務器的地址. f( S, Q( G, r5 W9 j$ g
smtp-auth-user是外部smtp服務器認證的用戶名/ K. U$ U2 u6 j
smtp-auth-password是外部smtp服務器認證的用戶密碼1 N9 H' V' T) X( [5 N6 d, {
smtp-auth是郵件認證的方式
/ Y. @! l; D" f8 p( B+ V1 b0 z; B$ S配置成功後,就可以使用了,可以發送一封郵件測試一下:7 R) S2 j6 P9 t' \
# mail -s "test" [email protected] < content.txt
& n2 b0 C/ l h' O' A E* v在linux下利用Google的SMTP來發郵件
* x1 d$ l1 w9 Z5 w: y5 L& V. t) U, N! k9 a: _: V
在维護伺服器的時候,經常需要建立一個伺服器錯誤抱錯系统,而郵件是一個很好的工具。
! w2 ^4 M( x4 u: K5 b在linux下,一般是透過mail來寫郵件,而傳遞默認使用sendmail服務。這樣雖然能向外界發送郵件,但郵件不能回復,並且sendmail服務要求發送方是系统可試别用户,配置比較麻煩。下面是透過使用Google的SMTP伺服器來發送郵件,不但减輕負担,而且可以使用類似的公共郵件地址來作為發送方。
$ y2 j" e& n/ r: @0 g- h
1 g$ F. [6 R( V- R5 E3 A
6 X" e( s% o6 b1 J# ?* e( j/ t& w. d: `2 x) j j
下面所有步骤,全部基於CentOS 5.11,其他發行版本類似。: N& L( A* ^7 @8 s, z0 q
1.安装mail, J6 ^4 B9 Y6 Y8 Z" T, ~8 U$ P
yum install mailx -y/ ?1 ]# f7 C# h/ X6 a4 O5 P
* P! x, z/ d+ S' H" q, q2.如果想直接使用sendmail來發送郵件,需要啟動sendmail服務,或者saslauthd服務( G# d1 G, G+ o- E9 Q
; d- v- X: |( A4 v7 n5 F3 x3.如果想利用外部SMTP來送郵件,需编輯/etc/mail.rc,加入以下内容" D) M6 Z( g( H4 k$ U( a
set [email protected]0 R9 K. D, P) H9 h/ o
set smtp=smtp.qq.com # W* m# H4 U* a! r) C) [( ]& h8 i
set smtp-auth-user=demo ( m1 H- |! o3 P7 i( J
set smtp-auth-password=demopass
7 A; D9 y- C2 \) S2 V/ o+ x$ Aset smtp-auth=login7 Y8 [: M5 ?9 p/ t6 D# Z
但是這個設置只適合那些支持非ssl鏈接的SMTP伺服器,但對於想Google,强制使用SSL加密鏈接的,需根據第4步配置mail+ h" w+ j7 A$ s0 ?" y) f+ ^ B* a
" C. l. c6 i4 T+ ^5 ^4.利用Google的SMTP發送郵件2 R! ~" J4 K# U8 I: w
在裝有 Firefox 的 Linux 主機, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 與 key*.db 複製到 ~/.mozilla_nss_shared_db
0 z! }3 [: p4 _) Q8 O0 [1 s. u A编輯/etc/mail.rc,加入以下内容* W. D3 U0 m: V& k5 O s' R
set ssl-verify=ignore; e9 |9 e* S% d6 R; t
set nss-config-dir=~/.mozilla_nss_shared_db, J0 t! [3 \, P' S
set from="[email protected](myname)"' ~% S$ Y j; N+ b
set smtp=smtps://smtp.gmail.com:465
4 H. S& d( d0 v, f$ y% _set smtp-auth=login
* I0 I# s, p, Jset smtp-auth-user=myaccount, W+ |- x9 J: o3 @
set smtp-auth-password=mysecret
7 Y M( T! w, d( r7 Q
. n3 J) q- a8 W如果想添加多個帳號,那就這樣寫配置文件
7 }3 K. e( B; U% _- @, Baccount starttls {/ z" j L7 j& f9 W
set smtp-use-starttls
' t5 i8 n& \' s6 t7 Qset ssl-verify=ignore) O# g) I. W, s6 E S6 _ S$ ^/ G B
set nss-config-dir=~/.mozilla_nss_shared_db
: j) e% @* r. [1 Y7 K8 N8 W: m% Zset from="[email protected](myname)"
& F! t- G! Q: [5 _% F- U" P) ]* mset smtp=smtp://my.smtp.host:25
) l+ O8 _, e) M- z6 h9 f$ V. eset smtp-auth=login
& y9 `$ N2 I9 w3 J0 i" l) H+ w0 w& i; aset smtp-auth-user=myaccount
2 E' S# D# z/ t" {! G$ a$ bset smtp-auth-password=mysecret- l0 ]8 O7 K9 Y
}6 \- `' t! V5 b% e# z1 D
account gmail {5 E8 O( D0 `4 P- Q) W
set ssl-verify=ignore
9 m1 @: ]* f; Q8 v! g( zset nss-config-dir=~/.mozilla_nss_shared_db
( M" a: ~! \. B- z1 mset from="[email protected](myname)"
' `& }6 o* d6 j& N& Q' lset smtp=smtps://smtp.gmail.com:465
1 j \& o9 a% Q9 ~set smtp-auth=login: x2 Z2 s0 s& f. |/ z) K
set smtp-auth-user=myaccount) {4 n5 Z2 d# x! G/ g! I
set smtp-auth-password=mysecret6 ^# e% t; G# S9 n/ g7 p" p4 x
}
1 }" N5 B; z. h& D% O% S不過在發送郵件的時候,需要用-A参數指定發送帳號,比如-A gmail
1 g2 g3 {* p5 q1 b) m' t' Z& i% w/ h但經我測試好像沒作用) S: E9 O" c/ _2 I3 x7 _3 ^
讀信:#mail
5 m' B; W% P4 ~! V假如讀信時空間已滿,可以查看 /var/spool/mail之下哪一個使用者檔案最大,例如 root(一般也是root最大),將它清空:, I0 a! v+ G- `8 l% b
#> /var/spool/mail/root3 [- }2 n& E* M: G" C; T
在執行 mail 就可正常讀信了
- v4 g, |6 d! r9 N( z6 N* p' }0 ~' w6 Y9 k1 m8 V# Y: i8 }; q6 K
% k4 [$ S2 m/ @
請參考:7 E3 Q4 X% X5 C4 O
http://linux.vbird.org/linux_server/0380mail.php#mua_mail
9 V* W* \) U( w/ Z( a6 s( R- |* j2 t" T% ^+ i m2 S1 F5 J+ ^9 U
|
|
|