本帖最後由 hudba 於 2014-1-15 13:26 編輯
# }' H! _7 O3 |6 {6 F2 s1 t3 }1 N, G8 [# c) [
有一個自己的接收郵件服務器的好處:
9 w7 p& q* N7 T O- 主要是自由方便,
- 可以有自己的域名郵箱,
- 不求人,
- 想多少個名字就多少個名字
! x2 s/ D6 t5 h& F* O 3 I* [; \/ h; ~' f7 N
發郵件相對簡單,這裡主要介紹如何使用dovecot配置一個接受郵件的服務器。
% V9 a; k, W% B) O3 m3 f環境:' _/ `) r2 p1 Q G, B: E
服務器使用debian,如果不是debian,配置文件的路徑稍有差別,需要自己修改,但過程一樣。
+ l f* y5 l. H, F郵件處理smtp協議使用:exim
$ P( l% |" i$ S: p X. Z' d郵件處理imap,pop3,lmtp協議使用:dovecot" x2 w$ Q& h. h5 f1 n# h" s
/ ]) k6 u8 ?0 m7 k. O
郵件接收&閱讀原理:
5 ^- L6 D' [! q9 ~郵件最終的投遞ip是由域名(比如yourdomain.com)裡面的mx記錄決定的。
2 L" ~" O& h" C9 ]比如在namecheap裡面這樣設置後,@yourdomain.com的郵件將會由yourdomain.com的郵件服務器接收
$ P- G0 W3 }# B6 Y3 \9 f
; S( H0 G5 d, \6 v& D8 u郵件發出後會以smtp協議進行投遞,發送和接受郵件的服務器都要安裝處理smtp協議的軟件,我們這裡就是exim。3 W( F; v+ ?9 X$ r8 s# I& J
我們的exim收到別處來的郵件後,需要用lmtp協議把郵件存起來,這裡我們使用dovecot處理lmtp協議。
0 J5 r' t4 e" `# k* T" a1 v! @郵件存儲了,需要閱讀的時候,需要使用pop3或者imap協議,dovecot也會處理這兩個協議。
3 S3 S; c0 v7 R3 `4 O, l郵件閱讀還需要客戶端,可以使用gmail或者outlook這些去和dovecot通訊下載郵件來讀。
: {/ \8 l6 Q" ~5 p3 H
- p' s* C: _ I+ m4 I; ~8 r6 a9 E安裝步驟:
, G" w( S. V: ?4 j/ G6 ^+ X$ J1. 去namecheap裡面設置mx,把@yourdomain.com設置到你的vps上面,如上面所附圖
7 r9 c1 h9 Z. ?6 C# T" ^& i+ f. P2 C. C" ^6 Z4 E: T( E) z
2. 安裝exim 和dovecot- aptitude install exim dovecot-pop3d dovecot-lmtpd
複製代碼 3. 配置dovecot$ Q8 H4 ~! p) s l V9 C
建立一個linux用戶專用存放郵件,這樣收到的郵件都將存到/home/vmail裡面:- groupadd vmail8 ]( r+ h: x+ q
- useradd vmail -r -g vmail -d /home/vmail -m -s /sbin/nologin -c "mail user"
複製代碼 6 O1 h7 h4 m6 Y4 ]( K
設置郵箱賬戶,運行:然後輸入用戶名,密碼組合如下格式,想輸入多少賬戶就輸入多少賬戶:
+ T' m& S4 B1 H3 Q; Q9 u配置dovecot本身,運行:- pico /etc/dovecot/dovecot.conf
複製代碼 刪除原來的內容,使用如下的內容,在原來的基礎上看一下差別修改一下也成:- protocols = pop36 O& u0 L8 I; x4 N- U
- ) K# |7 t6 `8 x9 i6 W
- # It's nice to have separate log files for Dovecot. You could do this [- C/ W o! S( _$ ~
- # by changing syslog configuration also, but this is easier.
# s( E, V4 @0 r6 A/ x% D - log_path = /var/log/dovecot.log
/ n& c* M% H. p - info_log_path = /var/log/dovecot-info.log4 A& ?$ `; @8 e, P
1 L$ ~) J) x: W- # Disable SSL for now.
. o6 s/ m# `- w7 q7 i9 `; J - ssl = yes
. H; ^5 N. I" |0 y7 ?+ q$ m% I - ssl_cert = </etc/dovecot/dovecot.pem' a6 O5 _: I6 u0 h# e% ~
- ssl_key = </etc/dovecot/private/dovecot.pem, |5 j1 K2 |7 w% U4 h
- 3 g& @. k( L& P: t1 g# R. d9 r& ^
- disable_plaintext_auth = no
& {; `9 R0 z4 j' N2 f& B9 z) K$ ~ - 0 j' i0 I2 A. A) g
- # We're using Maildir format8 j! ~* K1 _- A
- mail_location = maildir:~/Maildir% ?. j1 ~3 [, E3 `
- 9 K. C1 U u+ V, Z' d7 c
- # If you're using POP3, you'll need this:
/ {8 i- Q+ Z) m0 n$ W - pop3_uidl_format = %g
1 a: }$ k& V' _$ a - * N/ _5 [0 P T+ O
- # Authentication configuration:* ~6 w, j; b* n5 k. y
- auth_verbose = yes8 w! ]+ q2 H) B5 U
- auth_mechanisms = plain Q5 d u& w$ E
- passdb {- m r) _4 G- t+ [% g2 m
- driver = passwd-file& O8 _) u0 s" ~- d
- args = /etc/dovecot/passwd6 Q7 e6 |/ M; F( k
- }
2 l/ h5 |1 U8 ~2 s5 i - userdb {5 l V C2 m& N7 v& `3 E6 @7 D! p
- driver = static! K- b# z7 K* \; G" H, B7 X
- args = uid=vmail gid=vmail home=/home/vmail/%u7 X$ f- c: j+ x; w. @
- }
6 j% I5 Z2 |' Z+ j+ L - ( T/ q; C, w+ S
- service lmtp {! H0 i! ]7 N! G' @
- inet_listener lmtp {
" r! _) K I, b - address = 127.0.0.1 ::1
8 e0 F" {6 v: q! ]/ b - port = 24
6 A3 X0 M% A- E - }; ~* v, I2 _( f/ A8 S2 R
- / v9 B8 b1 @$ b0 |& U2 k* x
- unix_listener lmtp {. V: `$ h5 B6 F- r, D
- mode = 0666# } [9 W5 v% }
- }$ C! U, Y5 J0 a. X# s' o) R
- }
複製代碼 ' Q& E t- S) F3 j* z4 R* i8 C) ^
重啟服務:
1 O+ Q" g& W) M1 ~( K D9 _檢查一下dovecot是否已經在監聽端口:已經可以看到在監聽pop3,pop3s,還有lmtp的24號共3個端口了。
9 w: @2 a- ^) S6 v2 \9 \1 G! g, @
# f; b* y& G) B, |) z5 c5 A- f# T- `. z( b; [6 R8 p
4. 配置exim:5 G+ ~1 e: I4 S
運行配置嚮導:- dpkg-reconfigure exim4-config
複製代碼 這一個嚮導步驟比較多:
: J2 K1 K% c3 Y第一步要選internet site; mail is sent and received directly using SMTP6 [6 [, m, a5 ]4 f+ r
然後遇到有textbox輸入的如果怕麻煩全部刪除原來內容,留空進下一步。
0 O2 @) F+ V# i' Z& ^* ^有一個問題:Keep number of DNS-queries minimal (Dial-on-Demand)? ,選默認No
. E6 I }9 e9 ~$ \- s! H" p還有一個問題:Split configuration into small files?選Yes
) i9 R! O) p0 g* F* J1 }' ?, [& g' p+ \+ a4 D
配置exim進行lmtp方式投遞,運行:- pico /etc/exim4/conf.d/router/900_exim4-config_local_user
複製代碼 然後把文件內容替換為:- local_user:
j+ Q; L5 b0 z5 s - transport = dovecot_lmtp
$ W- [* p# B* N0 f' L3 Q - domains = +local_domains
+ {" c7 ^. A& I6 s2 V' P - driver = manualroute! N; f* r) m! G" F, H0 ]
- route_list = "* 127.0.0.1 byname"- r& L! ?' h, Z0 T4 ~! x% Q! O
- self = send
/ k/ d) ]% {; v1 t; f7 r
複製代碼
8 p! g7 F/ q) l0 ~$ Y運行以下命令,會新建一個文件:- pico /etc/exim4/conf.d/transport/40_exim4-config_dovecot_lmtp
複製代碼 然後輸入以下內容:- dovecot_lmtp:3 X3 c8 O% i! ]6 I1 I' Q0 P, f
- driver = smtp3 r! }* S4 U' u$ o( a
- protocol = lmtp
# f! f: E4 J" v5 R$ t$ o' |0 k0 ~ G - port = 24
複製代碼 9 A* U* R& I, q/ ]
重啟exim:檢查exim在公網監聽smtp端口:
* t2 t; i# I% Y& E一定要是*:smtp,如果只有127.0.0.1:smtp或者根本沒有smtp端口,說明配置錯誤。需要去/var/log/exim4里面看log文件排錯,另外dovecot的log也在/var/log/dovecot.log7 o; L* \ P" @ x6 H0 j
$ x8 C6 P& z n) s& G. p我使用gmail pop3作為閱讀客戶端,所以沒有用imap,如果需要可以在安裝的時候執行,應該不需要額外的配置更改:- aptitude install dovecot-imapd
複製代碼 4 R& ~: Z0 b1 L( ?
|