本帖最後由 hudba 於 2014-1-15 13:26 編輯
5 _9 J6 i6 s9 Y q2 [
$ o0 R$ v* |8 F; v有一個自己的接收郵件服務器的好處:# ]; t& w' [2 ]1 o3 u- Y t
- 主要是自由方便,
- 可以有自己的域名郵箱,
- 不求人,
- 想多少個名字就多少個名字* Z3 a/ E5 l) s! o1 {& p* d
8 ?6 U$ \* k4 b j8 {" `) O
發郵件相對簡單,這裡主要介紹如何使用dovecot配置一個接受郵件的服務器。
) @, h8 ` Q7 x. x: M% J環境:$ w2 o) i, I$ {3 B5 B
服務器使用debian,如果不是debian,配置文件的路徑稍有差別,需要自己修改,但過程一樣。
/ x' m/ K5 g N8 ]2 P$ |9 M( }郵件處理smtp協議使用:exim3 L, _* I4 \8 S* H# ^ |
郵件處理imap,pop3,lmtp協議使用:dovecot7 k' y& V" Q7 p
/ B; O2 H4 r3 d! A0 f
郵件接收&閱讀原理:
) o8 l6 V' q# I郵件最終的投遞ip是由域名(比如yourdomain.com)裡面的mx記錄決定的。
1 t! b9 W: e7 _8 O* v" G" K* I) N比如在namecheap裡面這樣設置後,@yourdomain.com的郵件將會由yourdomain.com的郵件服務器接收
4 M. q7 V) J; c3 N' M% l, g. I- e
! a4 T8 q5 V# d, Z$ F) ~, N4 w9 a6 r郵件發出後會以smtp協議進行投遞,發送和接受郵件的服務器都要安裝處理smtp協議的軟件,我們這裡就是exim。
+ U- u$ D" o2 j6 U' d我們的exim收到別處來的郵件後,需要用lmtp協議把郵件存起來,這裡我們使用dovecot處理lmtp協議。
+ [. X+ t& Z/ q5 c, i( V7 d* W1 k郵件存儲了,需要閱讀的時候,需要使用pop3或者imap協議,dovecot也會處理這兩個協議。
1 t7 b8 p9 S I8 J( [/ ]郵件閱讀還需要客戶端,可以使用gmail或者outlook這些去和dovecot通訊下載郵件來讀。
3 y" F8 l4 O& o" t. U3 X) t) {' i# E- G2 s% _- i- b$ C: u
安裝步驟:
0 M2 I' C* l: E( m1 ?- e1. 去namecheap裡面設置mx,把@yourdomain.com設置到你的vps上面,如上面所附圖( E' F9 I9 w! a9 [4 E. s
9 y8 ]5 `) V1 z& J2 @- c
2. 安裝exim 和dovecot- aptitude install exim dovecot-pop3d dovecot-lmtpd
複製代碼 3. 配置dovecot
' x* R8 B2 n! q0 h建立一個linux用戶專用存放郵件,這樣收到的郵件都將存到/home/vmail裡面:- groupadd vmail
& w; r! D7 d) g; M - useradd vmail -r -g vmail -d /home/vmail -m -s /sbin/nologin -c "mail user"
複製代碼
! G" n' z" S5 {0 v8 _; [5 f設置郵箱賬戶,運行:然後輸入用戶名,密碼組合如下格式,想輸入多少賬戶就輸入多少賬戶:
4 z: D ~" q+ R& b' Q配置dovecot本身,運行:- pico /etc/dovecot/dovecot.conf
複製代碼 刪除原來的內容,使用如下的內容,在原來的基礎上看一下差別修改一下也成:- protocols = pop3
/ y- k- R2 g; V3 w& I
' V0 A, {. d/ J; p: J+ |: [2 o- # It's nice to have separate log files for Dovecot. You could do this
" r% J& C3 i4 I; h. I - # by changing syslog configuration also, but this is easier.' ~) x/ Y# G: z+ ?8 l
- log_path = /var/log/dovecot.log, D- ^9 e/ G! ~0 w
- info_log_path = /var/log/dovecot-info.log; c% V \6 o2 S- M: m: A4 j* f
- % e2 s: _# }7 e- p7 M [' w9 E
- # Disable SSL for now.
& h5 @* i; I, b4 h - ssl = yes5 F( s* S$ A& ^8 u- V; ~
- ssl_cert = </etc/dovecot/dovecot.pem8 ~3 M) j( q! I$ p! T. P
- ssl_key = </etc/dovecot/private/dovecot.pem
, u$ @; Q7 d H+ i - ! v. _5 P7 I) R
- disable_plaintext_auth = no
W& P+ p; Z N0 d6 u - ( ~2 P* N' T. }2 u+ F# H
- # We're using Maildir format
( ^: t- w+ n6 Q5 M- W& T - mail_location = maildir:~/Maildir+ r5 i) w0 t4 s1 P: G" ]9 e
$ w; P- O% N+ s7 L P- # If you're using POP3, you'll need this:; ~. ?1 k+ y& N) d% u# m/ }
- pop3_uidl_format = %g
; H& j4 z8 P" d1 P" F% n
5 G4 { y) y0 ^& {. g. ]- # Authentication configuration:
+ G: A$ H7 k/ |: T - auth_verbose = yes
! X1 `4 T* t# A - auth_mechanisms = plain0 Q1 a2 Y, c# r1 d$ @$ ^+ H! d$ n
- passdb {1 `; b" K9 n( b& O0 d$ N9 e% v
- driver = passwd-file
y3 c5 [: N; X5 r9 y3 Y1 A& l - args = /etc/dovecot/passwd, P3 V; t3 z. ?7 H) Z/ g" ^
- }, F8 _; @0 E3 W" @( Q0 G
- userdb {
- `/ y+ E& t$ t+ @* Z+ T0 b: z, p3 H" L - driver = static
: M5 L' ]) _0 u* X \9 [: U - args = uid=vmail gid=vmail home=/home/vmail/%u, ~$ p, U5 L# Y. g% }8 n7 u
- }& G8 O7 `; _! P' M ]% Q$ B
8 N' I }* o; `& ]- f( {- service lmtp {
( I, o5 j8 b+ W J6 q - inet_listener lmtp {7 q1 x& r0 q! Z |& Z* F
- address = 127.0.0.1 ::12 z; c! _4 E: v. f; i4 x7 X
- port = 24+ x3 w9 n. o9 v( c9 L5 j- p8 z
- }3 D3 R9 M2 u! ]3 y8 U2 y
5 Q: }. p- d: y5 R% f- unix_listener lmtp {; V2 X( t1 `* o8 w; D5 J! e
- mode = 0666
. v6 z$ ^. s6 C$ q6 M - }& G4 M( Z5 q- F$ t4 h! u- o. Q, ~0 u, i
- }
複製代碼
* X5 E0 P8 O; b" |9 S$ J重啟服務:7 K) m" R4 U" Y6 A! P# Q% ~
檢查一下dovecot是否已經在監聽端口:已經可以看到在監聽pop3,pop3s,還有lmtp的24號共3個端口了。0 R% F$ e0 T8 x* P! }
) {+ Z" ?# r7 p1 _- _ [
2 o* M* }5 r! N# U( \* |4. 配置exim:
5 U! t3 S1 A* w* t2 y: ]運行配置嚮導:- dpkg-reconfigure exim4-config
複製代碼 這一個嚮導步驟比較多:8 U% c. q; w- A( f
第一步要選internet site; mail is sent and received directly using SMTP
7 w$ ^" }! S& [1 V然後遇到有textbox輸入的如果怕麻煩全部刪除原來內容,留空進下一步。
, g. R6 s9 e6 N: G9 S6 ~7 a3 U' Q有一個問題:Keep number of DNS-queries minimal (Dial-on-Demand)? ,選默認No' |0 @) ^' j, N
還有一個問題:Split configuration into small files?選Yes
7 v8 f6 g! {0 d$ t/ m: x4 Z; U% e
$ [- n+ o* |8 U% n' [配置exim進行lmtp方式投遞,運行:- pico /etc/exim4/conf.d/router/900_exim4-config_local_user
複製代碼 然後把文件內容替換為:- local_user:
1 W7 P1 q3 @6 u& T: c - transport = dovecot_lmtp
/ Q, V' a q7 P s - domains = +local_domains
5 g& t0 W6 t. i! e1 y% ]& ~% i1 S - driver = manualroute
: a& ]! u$ b$ A3 V9 ]2 a, K- V1 A - route_list = "* 127.0.0.1 byname"6 b( d- [% V0 e) n
- self = send" o5 C# a/ i5 U- J7 j8 S) o& t1 c
複製代碼 ' v9 F$ r% Y; b3 N
運行以下命令,會新建一個文件:- pico /etc/exim4/conf.d/transport/40_exim4-config_dovecot_lmtp
複製代碼 然後輸入以下內容:- dovecot_lmtp:
2 S% l3 I! x# R" w4 m6 |' Q: U - driver = smtp
# u2 W4 f: M4 A8 V - protocol = lmtp
: h G5 V9 y3 U# Z2 U - port = 24
複製代碼
* d) X# ~3 C3 Q/ H7 Y重啟exim:檢查exim在公網監聽smtp端口:
6 D0 u& f" O6 n% g8 H+ j* H1 m. z# N# [一定要是*:smtp,如果只有127.0.0.1:smtp或者根本沒有smtp端口,說明配置錯誤。需要去/var/log/exim4里面看log文件排錯,另外dovecot的log也在/var/log/dovecot.log
; a; v+ L9 F: s, A' a/ T7 d4 u: u; P
我使用gmail pop3作為閱讀客戶端,所以沒有用imap,如果需要可以在安裝的時候執行,應該不需要額外的配置更改:- aptitude install dovecot-imapd
複製代碼
, Z5 q/ x8 s! ]! G) _' \ |