|
tid=35304&寄信:8 b" W4 i) d9 o Z$ j; ]3 M* @
參數說明:
" q' U0 @) `( P) I8 x% ~-s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”
y) H# v' Q; N& w# `-a 想在信件中夾帶附加檔案,用這個參數就對了。" M0 F$ ^1 g- {$ v2 ]
例 :-a ~/testfile
* [ d+ |- G2 x4 _* X" {-c 指定信件的副本。/ p9 A& u: }4 |. p
例 :-c barry,vivian) w8 ?6 E" I7 x+ [
-b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。( h9 B: h, N9 Q
例 :-b mary,tina@msa.hinet.net
( N4 |- C" p* f; c$ n$ \5 \-q 以指定的檔案做為信件的起始內容。8 y. |7 K2 d7 Y' E" Z4 P" `9 D% Q
例: -q ~/mailfile/ \ t) u8 y! z& j
-r 設定 mail from 的郵件地址。
& A" [9 K' D8 J' X3 d' w" l例:-r admin@paching.idv.tw
9 W3 q% v9 ~# k8 O! n" [-u 讀取使用者的 mailbox。2 d% j! c8 L8 \8 V p6 o6 w h
例 :-u barry
& J0 H) g4 [# i$ o p6 M N-f 讀取使用者的 mailbox。
: e; \" ^5 N( R/ O/ s. p1 n例 :-f /var/spool/mail/barry
4 Z& e7 c. e: Y& y1 n: j" n, M. Q! @( @& y
) t! n8 ]0 b2 A: G* v$ _" Q
$ | X" g* b/ B將content.txt文件的內容寄出(非附件寄出)
' g1 [; X9 F' Y0 g: _# cat content.txt ||mail -s "mail test" test@gmail.com
9 c8 z' [9 R5 f& J或者% q- d7 f7 S) B- E3 ~
2 L) p: M6 }* T( ~ |. L; O" ]# mail -s "This is a test" aa@aa.com < content.txt" ]9 [) I f( R3 R8 Q4 `
編輯模式寄出:
: w& D* m2 x" p( W# mail kevin@av4u.info0 i3 ]& E1 Z4 [# P9 e8 M5 e
Subject: This is a test mail
& R4 Q& Q& C0 n; z1 uThere are writing area!7 z' i& `7 A- m! \* J( k3 n! J
You can't use the Up/Down button in this form...$ s/ x/ `+ Q1 K. K8 k0 c8 O$ D
you can finish with "."
, ], [, K# ^3 ~5 y) }7 i6 {8 ^6 T. <==這個『.』就是結束符號!要正常離開編輯畫面就是 . !
3 q2 q, p; z% e" d$ k6 J9 _4 c& ^ Y, K9 { n# m5 a$ y% D
mail/mailx命令使用外部SMTP來發送郵件/ h8 V: A1 h1 k4 c& q8 A
/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:
/ s6 h% ^# X: @: K4 o修改/etc/mail.rc 加入底下設定:/ F; v/ |+ }1 C/ X3 `+ t0 a4 L
- set from=fromuser@domain.com smtp=domain.com! P+ d7 v% @8 ]$ n% V
- set smtp-auth-user=username smtp-auth-password=password
# f3 D; S, r8 ~' z/ ~# h3 h O* _ - set smtp-auth=login
複製代碼 說明:
/ B N: p) z1 t) Y# Kfrom是發送的郵件地址* J9 y5 L$ [9 w% \. q% b% h/ @7 T
smtp是發生的外部smtp服務器的地址* |3 n& b: W6 N+ F
smtp-auth-user是外部smtp服務器認證的用戶名1 @: M5 {3 S, a% g6 i
smtp-auth-password是外部smtp服務器認證的用戶密碼* P. D! i' c3 _" e
smtp-auth是郵件認證的方式
- a4 ~% ~. s0 y" l* c7 B7 A" B6 ?3 O7 G配置成功後,就可以使用了,可以發送一封郵件測試一下:
- M- D" e X( L2 [. `# mail -s "test" user@domain.com < content.txt+ E' H9 @9 ~; w$ {5 Z2 N
在linux下利用Google的SMTP來發郵件4 `7 _) L8 H) K2 v$ u4 b
/ `: V. V; M1 l; L I
在维護伺服器的時候,經常需要建立一個伺服器錯誤抱錯系统,而郵件是一個很好的工具。
4 {2 G0 z6 y) n" Y, C) s* z在linux下,一般是透過mail來寫郵件,而傳遞默認使用sendmail服務。這樣雖然能向外界發送郵件,但郵件不能回復,並且sendmail服務要求發送方是系统可試别用户,配置比較麻煩。下面是透過使用Google的SMTP伺服器來發送郵件,不但减輕負担,而且可以使用類似的公共郵件地址來作為發送方。+ Y) S3 k" d* Y9 G' ~
% X" P+ w5 E5 f o+ c$ V' L
* Y& M' g7 @# ]4 Q: X G7 a4 l1 x) H( i
下面所有步骤,全部基於CentOS 5.11,其他發行版本類似。% S8 I9 @$ b' i% h! q9 d
1.安装mail/ c( |. p0 n& \8 ]( [0 |
yum install mailx -y, O) o# F6 r2 d+ [4 X: r; I/ t3 z8 }
7 F+ x0 c& Z1 c/ _- N
2.如果想直接使用sendmail來發送郵件,需要啟動sendmail服務,或者saslauthd服務
: C, j5 G0 _3 a/ O4 k; G9 L! _: H# u$ ?: A. x1 P* l8 @4 U
3.如果想利用外部SMTP來送郵件,需编輯/etc/mail.rc,加入以下内容
n3 j; ?4 j/ ?5 e2 Bset from=demo@qq.com3 c/ Y, p3 X# {0 T ?' \+ Q
set smtp=smtp.qq.com c8 V* ^& V/ B Q
set smtp-auth-user=demo
, p4 u5 N5 P$ g) D! I7 [; k9 Y" _set smtp-auth-password=demopass " o$ j3 J: r" L: F/ x1 [
set smtp-auth=login
( K( L& Q( u" D1 f8 U! i; J4 u9 M但是這個設置只適合那些支持非ssl鏈接的SMTP伺服器,但對於想Google,强制使用SSL加密鏈接的,需根據第4步配置mail
- Q6 v. l, O: T: M, X
. U, C3 o/ H! q+ i' N' ?7 t f4.利用Google的SMTP發送郵件
! b/ R% B& `* x* c' Z5 F在裝有 Firefox 的 Linux 主機, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 與 key*.db 複製到 ~/.mozilla_nss_shared_db1 v0 @. `, S6 g7 j& F. g6 r
编輯/etc/mail.rc,加入以下内容
, y& f7 k4 Z0 C8 n. R" r bset ssl-verify=ignore8 ?1 N, F5 c/ I) V
set nss-config-dir=~/.mozilla_nss_shared_db. |, |' A7 K7 W# t* _# Z4 m [
set from="myaccount@gmail.com(myname)"
( b: Z3 K9 N" gset smtp=smtps://smtp.gmail.com:465. V# W( S6 X1 @' A, O8 t* k
set smtp-auth=login
r1 z0 `' a5 \9 S. ~9 r4 P0 x' pset smtp-auth-user=myaccount
/ O5 g- E" W+ O" E2 D! B2 z5 oset smtp-auth-password=mysecret
% G) U9 {7 H, O: T; h$ I9 N X% q
6 V( W7 f9 ^ i" k! H! O如果想添加多個帳號,那就這樣寫配置文件0 \2 O3 \5 k+ r) ~# j
account starttls {" |/ V7 d1 q" a' I
set smtp-use-starttls
8 l7 M* W- g; y' J( |set ssl-verify=ignore7 l- I0 n* s6 S2 r
set nss-config-dir=~/.mozilla_nss_shared_db T( q4 [" K% ^1 a3 A, R
set from="myaccount@my.smtp.host(myname)"! z, G8 z/ s1 ^ J; j
set smtp=smtp://my.smtp.host:25
6 K% L" L$ j6 v) d' W4 K( Y. I% Mset smtp-auth=login
5 @$ k! p# Q9 e! U" L) h3 N2 V5 Bset smtp-auth-user=myaccount
m' G- ^& y; G6 V0 Zset smtp-auth-password=mysecret
! P; O1 D6 r1 F. Q9 u$ J$ I}# }3 v2 Y! s# v8 \
account gmail {" q, P& v( B* R# b
set ssl-verify=ignore; g. }" z% }4 P. E
set nss-config-dir=~/.mozilla_nss_shared_db: I7 \* e4 l+ g5 k# d
set from="myaccount@gmail.com(myname)"1 J0 w$ K4 O- b# F; W
set smtp=smtps://smtp.gmail.com:465/ d8 N* w" i& Q9 ?$ J
set smtp-auth=login
3 j9 s2 {+ M) W: F5 y2 _* Iset smtp-auth-user=myaccount
2 [7 m( V/ V5 f. N* t [* Iset smtp-auth-password=mysecret" R- l! \2 _. N
}9 H9 R5 z. W% X; R/ K
不過在發送郵件的時候,需要用-A参數指定發送帳號,比如-A gmail
. r2 o$ N& w# [8 v但經我測試好像沒作用: y# M& v: y6 W4 q; K8 i [, L
讀信:#mail
" E, C: O, y8 |0 N% ?6 R; G& A假如讀信時空間已滿,可以查看 /var/spool/mail之下哪一個使用者檔案最大,例如 root(一般也是root最大),將它清空:* L# t$ B4 ~+ f2 k" A
#> /var/spool/mail/root
4 t$ R+ w% ?! G# l5 p在執行 mail 就可正常讀信了0 ?9 i! ?2 U- G O
f A& C( V1 x6 S+ M0 Z C
% ?& y3 Z" Q y4 }( l
請參考:
( |0 R+ d3 v; m' V5 l$ P Ihttp://linux.vbird.org/linux_server/0380mail.php#mua_mail7 x) G* e' ?1 W
9 g0 G/ m. N2 g% |9 ^% h
|
|