|
|
tid=35304&寄信:: t6 U+ E- \+ D( _4 f' Z
參數說明:
6 Y. ?. z& N3 q-s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”
5 t. \! d5 U1 Q, R+ C-a 想在信件中夾帶附加檔案,用這個參數就對了。
/ Q' i! b- Y. ]) M' _5 y: X例 :-a ~/testfile3 B* y0 M- N3 K( {+ e% ^4 D
-c 指定信件的副本。, I, M% H j' A: ^8 Q* D
例 :-c barry,vivian/ K$ m' {% C* Z, M' N
-b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。. y0 y+ ~' v+ K9 `' Z* y7 s
例 :-b mary,tina@msa.hinet.net
, Y3 w# K$ M; Y! q% y" J. g-q 以指定的檔案做為信件的起始內容。4 q7 ], T0 [ C8 N0 ]9 y5 m
例: -q ~/mailfile1 X2 b9 s) ?8 L0 {8 n
-r 設定 mail from 的郵件地址。* ^$ J* u7 S% S8 ~4 V- B5 p* y; M
例:-r admin@paching.idv.tw# `$ |7 g1 }5 Z$ p: q) u6 h" Q
-u 讀取使用者的 mailbox。; B, H) W8 a |
例 :-u barry
5 s3 E% V0 n( g5 t-f 讀取使用者的 mailbox。1 Q; M' A% z7 m5 Y* W
例 :-f /var/spool/mail/barry
1 E7 ~. i* @4 I: j5 q; Q3 S* {
3 J% t( ^1 P. D$ @$ o, ]# y: `% b( T( T) S2 K+ g& F! X7 F
4 Z9 W2 |) m% _8 p( K9 X將content.txt文件的內容寄出(非附件寄出)
: I4 e4 T6 Z _( W( S, d* \- ~. \4 M# cat content.txt ||mail -s "mail test" test@gmail.com
. I% e c3 R2 x' E$ Y或者
; n9 d& d& U6 B4 h$ ?2 d; U6 t& ]; m t
# mail -s "This is a test" aa@aa.com < content.txt+ n) r1 k1 u8 z( M- K; N c
編輯模式寄出:/ F) L3 z. }# ~1 m- L
# mail kevin@av4u.info+ {! H( {. N$ M
Subject: This is a test mail0 t! Q# ]# P8 t$ j; u
There are writing area!1 C2 t5 S- z7 _6 W0 z- t
You can't use the Up/Down button in this form...
- L1 l) p4 r* ]) u# ?you can finish with "."
) [1 ~- Q3 ^" w6 U2 q. <==這個『.』就是結束符號!要正常離開編輯畫面就是 . !! R6 E9 I% R6 o6 A, P" I
% O* p0 q( b" e1 I+ jmail/mailx命令使用外部SMTP來發送郵件
0 C8 T/ n! c+ _$ E1 |/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:
7 ^* n( K6 u9 w7 n' T" G6 m修改/etc/mail.rc 加入底下設定:7 v0 x( Z8 o0 @
- set from=fromuser@domain.com smtp=domain.com
8 l7 R9 P" O" k - set smtp-auth-user=username smtp-auth-password=password
. p5 M% g3 W9 o0 H/ F% W0 ? - set smtp-auth=login
複製代碼 說明:
- L0 A) t" [. C) [0 sfrom是發送的郵件地址
$ K9 \* q# Y( R, h# _smtp是發生的外部smtp服務器的地址
. Y6 x1 b3 ?' D! h y7 Q" y3 ~smtp-auth-user是外部smtp服務器認證的用戶名
0 M$ G( j X, W3 p8 d/ A4 D) esmtp-auth-password是外部smtp服務器認證的用戶密碼
' W" I' F- M4 @6 T) qsmtp-auth是郵件認證的方式
3 q- b4 ^( W! I- V6 \ S配置成功後,就可以使用了,可以發送一封郵件測試一下:
7 C5 S7 w4 \! u0 J& u7 Y# mail -s "test" user@domain.com < content.txt. R/ A6 ~; v5 o" y A
在linux下利用Google的SMTP來發郵件
, |: B. }* X" @# x& j- X: n V
3 \+ `' J/ s. @; w; S" [在维護伺服器的時候,經常需要建立一個伺服器錯誤抱錯系统,而郵件是一個很好的工具。+ r4 A" ?3 ^) m' j' j! c- t, Z
在linux下,一般是透過mail來寫郵件,而傳遞默認使用sendmail服務。這樣雖然能向外界發送郵件,但郵件不能回復,並且sendmail服務要求發送方是系统可試别用户,配置比較麻煩。下面是透過使用Google的SMTP伺服器來發送郵件,不但减輕負担,而且可以使用類似的公共郵件地址來作為發送方。- ?% R4 ?* n; n5 R- v
2 [% |: m$ y, d" o4 F& y* l, U
1 j! @3 M% _& o4 B/ @
4 q) b& F9 F5 C( l9 G2 C0 J下面所有步骤,全部基於CentOS 5.11,其他發行版本類似。8 _# y/ P0 W9 V9 ?
1.安装mail
6 g$ W5 G$ m7 c7 P6 P& Ryum install mailx -y+ A+ I/ c5 u, N1 B6 _
/ N* [4 V# D, V' }: g2.如果想直接使用sendmail來發送郵件,需要啟動sendmail服務,或者saslauthd服務
x( h- N$ ?0 K4 u, ?+ P% e$ q* I1 o% F7 u1 b5 f$ d6 D* f
3.如果想利用外部SMTP來送郵件,需编輯/etc/mail.rc,加入以下内容
7 \; w1 e3 o+ |1 Iset from=demo@qq.com% e$ ]( [; b( y& ^/ z7 \
set smtp=smtp.qq.com
`7 Z' z3 j$ b% l: K; `6 {set smtp-auth-user=demo
- @9 H* t0 g' A2 {% x" wset smtp-auth-password=demopass 9 \$ m9 C# l$ _& P+ L2 s
set smtp-auth=login
# U! i! b# H6 I& |2 c. l- V! y但是這個設置只適合那些支持非ssl鏈接的SMTP伺服器,但對於想Google,强制使用SSL加密鏈接的,需根據第4步配置mail9 r' Q' C2 {- H$ Q2 ^ B5 a
. u) ^# ^/ L6 u2 J6 K4.利用Google的SMTP發送郵件
; u. N2 ~5 g" R: I# y, [在裝有 Firefox 的 Linux 主機, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 與 key*.db 複製到 ~/.mozilla_nss_shared_db- n3 I$ z$ e- ^- [
编輯/etc/mail.rc,加入以下内容* S. X' U$ { r8 O0 ]
set ssl-verify=ignore, s1 R- [6 r X5 N. m+ {' A
set nss-config-dir=~/.mozilla_nss_shared_db1 O m* M/ A2 @) n2 K2 {! V+ H% W
set from="myaccount@gmail.com(myname)"% L- A: N9 q A' c) E+ a
set smtp=smtps://smtp.gmail.com:465
2 |/ d s' }, M# V6 ^; sset smtp-auth=login
4 q4 _- d" d! E6 p" m- G( Xset smtp-auth-user=myaccount5 Y" g5 V5 P0 Q
set smtp-auth-password=mysecret
8 n+ ^6 e4 O, N. H% o
, k, i; Y8 L5 S: B如果想添加多個帳號,那就這樣寫配置文件
* u* a# }+ N) n6 h$ `account starttls {0 s3 Q! l5 h3 Q% `1 E% B& L
set smtp-use-starttls
% s1 K8 z/ C F# H$ S O: Rset ssl-verify=ignore
! ]3 ]% z; j3 m9 N9 t& S9 a2 i3 Wset nss-config-dir=~/.mozilla_nss_shared_db" d* _+ H- q0 f9 `7 o. E
set from="myaccount@my.smtp.host(myname)"; w0 ~( E( l* m& F& h" n# H
set smtp=smtp://my.smtp.host:25( X% g$ m4 R+ J* t
set smtp-auth=login! K9 I7 i$ ?4 @& Y' p
set smtp-auth-user=myaccount! T& G9 b) N8 A% G
set smtp-auth-password=mysecret6 ?+ G- l" G) L" g, j9 H/ Y. g ? y
}& q B O) F) j) Q. ^. _% N& K R3 c
account gmail {7 ^* c+ f# t! W
set ssl-verify=ignore1 }/ l: J- ^" H9 L, x+ b Z
set nss-config-dir=~/.mozilla_nss_shared_db
" j) p( T4 \$ u3 vset from="myaccount@gmail.com(myname)") z Q/ V! @/ v: |/ }1 k- `6 y
set smtp=smtps://smtp.gmail.com:465) F. x! U. _: E5 u; X. f6 X
set smtp-auth=login) A/ ] j( H- s1 [% o$ k' ~+ }
set smtp-auth-user=myaccount
0 j( k' n3 e( a: X3 {1 _set smtp-auth-password=mysecret {# E( l' b& H% V! ^" n: g* T
}* c4 V0 N8 g! M8 y# o% R
不過在發送郵件的時候,需要用-A参數指定發送帳號,比如-A gmail( `/ L/ h s0 _9 j6 b$ }7 j
但經我測試好像沒作用0 k1 p) P. h) P q' K
讀信:#mail- g8 ?1 g. R# M( }" M
假如讀信時空間已滿,可以查看 /var/spool/mail之下哪一個使用者檔案最大,例如 root(一般也是root最大),將它清空:
) B+ W' f, Q: y9 k+ N#> /var/spool/mail/root
+ k# B& y6 [+ O( ~在執行 mail 就可正常讀信了$ I5 \+ J9 I. E. K% V" m! U8 P
* q- \+ T! x, M: f+ ~" P( j
0 D0 _' J. e0 r+ u, \請參考:
: H, Y, `0 X9 e6 \4 Whttp://linux.vbird.org/linux_server/0380mail.php#mua_mail
7 D4 I2 S) b5 w/ l+ t2 s" [( K
|
|