|
|
tid=35304&寄信:$ M$ C3 k1 V% [& {) u* h
參數說明:
4 D( M+ o* R3 M5 q9 B' s-s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”
4 L6 N# @2 q% l5 n$ R" X9 y- z: s-a 想在信件中夾帶附加檔案,用這個參數就對了。, e/ }4 x' m1 e! c- a+ B
例 :-a ~/testfile
9 X" Q6 ^3 F. U$ r8 p7 ~6 ~-c 指定信件的副本。/ D3 | l0 r" j* x+ m
例 :-c barry,vivian
& i" ~7 \& v' m; {6 y5 U' ^-b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。
; J ^" L! c2 c1 @$ {% \4 w例 :-b mary,tina@msa.hinet.net
) Q o. t5 p# _+ t7 @0 V-q 以指定的檔案做為信件的起始內容。
" `$ P0 x" C m+ P1 D0 G: Z, t; s例: -q ~/mailfile
2 |7 ? \/ u; ]- B-r 設定 mail from 的郵件地址。; S7 L6 M: Q8 |
例:-r admin@paching.idv.tw
" v! F9 f+ s7 _0 S3 s4 r3 ~8 d. I# |-u 讀取使用者的 mailbox。
& T( n" a) a1 [0 F例 :-u barry
! R- O5 ~ t2 ~+ d2 q& F! l3 D9 a-f 讀取使用者的 mailbox。, y @6 s1 ^; o
例 :-f /var/spool/mail/barry
9 L) }# t C. w% L( o7 e) Q1 ~$ E1 `1 M0 |5 V. |: p* ~
% ~! x. x( C4 E2 |1 r
1 i4 }/ z8 N, R* Y6 R/ Z
將content.txt文件的內容寄出(非附件寄出)
$ V) Q9 K) ~$ N, Z! o# cat content.txt ||mail -s "mail test" test@gmail.com/ A _# G2 |8 B' Q! h7 d
或者& j% w: W7 S) s# D3 E3 {( G9 S: _6 H
1 h% m% b" q: i7 v, t9 o7 o# mail -s "This is a test" aa@aa.com < content.txt
: R- }4 `! l7 p" p! ^編輯模式寄出:+ I8 L" J3 z8 s( s: e( f* S
# mail kevin@av4u.info W' o% Y7 \1 P2 m7 z) b
Subject: This is a test mail
2 Y: [, ]" ~8 J( QThere are writing area!
' \# }8 Q6 _$ Y8 h9 I5 U6 Q, DYou can't use the Up/Down button in this form...
5 V: o" y# R$ myou can finish with "."9 Q6 O0 T! b h$ o% u2 @
. <==這個『.』就是結束符號!要正常離開編輯畫面就是 . !9 B/ e$ w4 H- T7 V. e& X
, Y, f, P9 f/ {. V7 U
mail/mailx命令使用外部SMTP來發送郵件
* ~% o _5 i5 T, @/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:. y" Y% ]- ~) |& Y5 r$ b
修改/etc/mail.rc 加入底下設定:
0 M: B9 [% [8 Q7 K$ a' |( `- set from=fromuser@domain.com smtp=domain.com+ ?; `) T4 d. K. ~0 h2 n
- set smtp-auth-user=username smtp-auth-password=password$ D! f9 U' ^" _/ u! }
- set smtp-auth=login
複製代碼 說明:
/ t. L9 d, R) I0 q6 t% qfrom是發送的郵件地址
) W6 u* r O! v7 M( ]8 f5 U! Msmtp是發生的外部smtp服務器的地址8 x; a1 v+ H2 T) e1 c
smtp-auth-user是外部smtp服務器認證的用戶名6 Y5 ^, j( o- N& ~2 g
smtp-auth-password是外部smtp服務器認證的用戶密碼
; S! n* N* g* r y' csmtp-auth是郵件認證的方式% W' B0 \$ y$ m' W
配置成功後,就可以使用了,可以發送一封郵件測試一下:% }2 F! }9 B( }. i- P9 U0 D5 t
# mail -s "test" user@domain.com < content.txt
! s! I! U5 J( i在linux下利用Google的SMTP來發郵件
4 `- ?5 q' o" ~( f# J( j2 Y3 w& K. x0 a- L3 H
在维護伺服器的時候,經常需要建立一個伺服器錯誤抱錯系统,而郵件是一個很好的工具。
& ]# _6 ]; [! z) ]% H在linux下,一般是透過mail來寫郵件,而傳遞默認使用sendmail服務。這樣雖然能向外界發送郵件,但郵件不能回復,並且sendmail服務要求發送方是系统可試别用户,配置比較麻煩。下面是透過使用Google的SMTP伺服器來發送郵件,不但减輕負担,而且可以使用類似的公共郵件地址來作為發送方。
7 U" }5 r+ J4 H3 L5 W( z
# X" D1 D+ j# ~. f; w3 B O$ Q% _1 k# ~' H) p% z F( T) k3 m. |' ^% W4 l
6 \/ V1 Q9 H8 a* j下面所有步骤,全部基於CentOS 5.11,其他發行版本類似。
1 s7 b$ ~" B2 h' j8 g- M, R1.安装mail) O+ }2 e1 M2 c; [- ]
yum install mailx -y( ^! |* W& \+ b% i! S- `4 {3 H1 ~
/ r: I9 F1 J* l) O9 B3 l
2.如果想直接使用sendmail來發送郵件,需要啟動sendmail服務,或者saslauthd服務
$ L3 O5 y1 [' `% b
. b0 b% H. w: e$ \2 \ w6 f3.如果想利用外部SMTP來送郵件,需编輯/etc/mail.rc,加入以下内容/ R' |: u/ l: t; h% g
set from=demo@qq.com+ e: |3 [: }# b0 I2 @
set smtp=smtp.qq.com
* \7 G- z y2 q- sset smtp-auth-user=demo . r# I4 }. I- v3 w. D
set smtp-auth-password=demopass
( X9 s: X6 T2 X( J- J) \set smtp-auth=login' P' F, `( |8 K( T$ @
但是這個設置只適合那些支持非ssl鏈接的SMTP伺服器,但對於想Google,强制使用SSL加密鏈接的,需根據第4步配置mail8 ^7 Y" {5 M9 {+ z R4 z
& T; Q! p5 l+ ?0 U; N3 q5 N
4.利用Google的SMTP發送郵件
3 W5 X, j3 Z6 I/ ~3 B$ W( x在裝有 Firefox 的 Linux 主機, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 與 key*.db 複製到 ~/.mozilla_nss_shared_db
6 N4 j: v9 B1 M, i3 k, ~编輯/etc/mail.rc,加入以下内容
' r& h* X+ ]+ }) z9 R" t- Vset ssl-verify=ignore, o7 H( u, S$ V! H, x3 N# P
set nss-config-dir=~/.mozilla_nss_shared_db
+ V" P& b9 g% R$ Y) [set from="myaccount@gmail.com(myname)"
7 i; C6 M# V3 X+ kset smtp=smtps://smtp.gmail.com:465
& S( [# i5 P( v2 p2 Z6 p; ~4 aset smtp-auth=login
" l) Z/ W/ n+ kset smtp-auth-user=myaccount
, @8 `" g S6 @% Wset smtp-auth-password=mysecret/ ?+ q. a; a) N9 P
! c9 w$ p: S) X) O6 i+ e如果想添加多個帳號,那就這樣寫配置文件
! c: x, X: _4 Q% }0 v( Uaccount starttls {- R4 l% \, U8 N
set smtp-use-starttls6 L, N7 y: \3 c8 }5 a
set ssl-verify=ignore5 y; t3 F4 H+ C) q) D+ [
set nss-config-dir=~/.mozilla_nss_shared_db3 t/ S% {" ]5 |8 v: T5 @' v8 n2 c
set from="myaccount@my.smtp.host(myname)"
9 z9 f1 ]3 i# |& K! Wset smtp=smtp://my.smtp.host:25( Q+ X) G7 _ `: N
set smtp-auth=login
, w8 u! K) j( |- K( ~set smtp-auth-user=myaccount
. s5 L/ i$ g( ~set smtp-auth-password=mysecret2 [; Q$ o- T5 I8 E$ u
}+ e8 Q% I: l6 R7 `2 L6 I9 d
account gmail {8 h6 _5 r, I' B& j+ e
set ssl-verify=ignore
7 x/ j- H; S1 a( I9 Z3 kset nss-config-dir=~/.mozilla_nss_shared_db& q* I, d, V$ ~9 V6 O. [
set from="myaccount@gmail.com(myname)"- R8 q6 N, D7 C% c
set smtp=smtps://smtp.gmail.com:4653 |, f7 A: q/ o% E* A' v* v
set smtp-auth=login, I% z) M1 b! c; f5 E: O g% U/ `
set smtp-auth-user=myaccount
% L* v: d4 T: q+ W0 h8 N6 o! s) j" pset smtp-auth-password=mysecret8 d6 x) H1 g9 b" T6 W Z
}
6 l8 T5 x) ^' I: Z$ Q0 z不過在發送郵件的時候,需要用-A参數指定發送帳號,比如-A gmail
! f" W5 x6 H, J8 O9 @4 M+ C但經我測試好像沒作用9 }: P* J: ]' a
讀信:#mail9 W- I0 f% K# Y2 B5 a- D: |% g h
假如讀信時空間已滿,可以查看 /var/spool/mail之下哪一個使用者檔案最大,例如 root(一般也是root最大),將它清空:
' T5 O! m! f5 P }6 A# u#> /var/spool/mail/root
1 V- K7 w* B9 q% s在執行 mail 就可正常讀信了
' f, D9 m$ u, F% ]: A
! ?1 r8 l% Y Z: U) O: Z" o0 j) h x1 Q, v0 F: p: }4 g2 D' n
請參考:8 L7 {+ x8 L" l9 Y
http://linux.vbird.org/linux_server/0380mail.php#mua_mail) I! h/ p" P/ T& d# u8 O: E
( R( o3 i& p' Q
|
|