本帖最後由 hudba 於 2014-1-15 13:26 編輯 ! i) N& i& {& Y1 E8 \5 N# h
9 ?* ]( d Y, S( A9 w6 c* v2 M
有一個自己的接收郵件服務器的好處:! a! C3 M2 ^' D/ N+ J$ T4 r1 o
- 主要是自由方便,
- 可以有自己的域名郵箱,
- 不求人,
- 想多少個名字就多少個名字
4 \. ? X( h$ r# h0 B& }
5 `( y. b- {9 C* L! E發郵件相對簡單,這裡主要介紹如何使用dovecot配置一個接受郵件的服務器。! ^0 d( b' C. V. _. X5 ]
環境:( b: o& X2 F6 {. o5 w! q* |# g) N7 }
服務器使用debian,如果不是debian,配置文件的路徑稍有差別,需要自己修改,但過程一樣。6 @/ G" t! k3 u/ v1 E- E, M: o
郵件處理smtp協議使用:exim6 _, Z1 h( N4 o) F3 z) ?, z: b
郵件處理imap,pop3,lmtp協議使用:dovecot, G4 D5 M5 q; P1 W, o+ F' O
& K: \# @ T5 M& C
郵件接收&閱讀原理:" |$ m7 F: z$ k. j$ r# ]6 o Y
郵件最終的投遞ip是由域名(比如yourdomain.com)裡面的mx記錄決定的。2 ]) O& n7 g W2 N% _, s$ S5 G
比如在namecheap裡面這樣設置後,@yourdomain.com的郵件將會由yourdomain.com的郵件服務器接收. L- @: o, w3 _% @9 `
+ \: c- x$ T; o& _郵件發出後會以smtp協議進行投遞,發送和接受郵件的服務器都要安裝處理smtp協議的軟件,我們這裡就是exim。% E& q3 Z6 p2 v
我們的exim收到別處來的郵件後,需要用lmtp協議把郵件存起來,這裡我們使用dovecot處理lmtp協議。
# i* }: n0 U$ J& D9 G" [- h郵件存儲了,需要閱讀的時候,需要使用pop3或者imap協議,dovecot也會處理這兩個協議。
3 B" h1 {# v: M* }" H% `5 Q郵件閱讀還需要客戶端,可以使用gmail或者outlook這些去和dovecot通訊下載郵件來讀。( S( A4 a |6 K/ Q) c) m
1 i: s: b+ ~5 ^2 U
安裝步驟:
% |0 L: ~# l9 N8 |/ K3 l1. 去namecheap裡面設置mx,把@yourdomain.com設置到你的vps上面,如上面所附圖2 w7 T: ^8 c0 o9 m" ~+ h, q; F
& E7 B5 v; u% e( O" k
2. 安裝exim 和dovecot- aptitude install exim dovecot-pop3d dovecot-lmtpd
複製代碼 3. 配置dovecot( D4 b j) k7 B0 Q! {( g
建立一個linux用戶專用存放郵件,這樣收到的郵件都將存到/home/vmail裡面:- groupadd vmail7 C$ Q/ r5 \4 @
- useradd vmail -r -g vmail -d /home/vmail -m -s /sbin/nologin -c "mail user"
複製代碼 ( s" M$ Q% H- _6 N1 D6 _1 B$ O: u
設置郵箱賬戶,運行:然後輸入用戶名,密碼組合如下格式,想輸入多少賬戶就輸入多少賬戶:- q" O. v# V1 X4 u1 Z2 J5 U
配置dovecot本身,運行:- pico /etc/dovecot/dovecot.conf
複製代碼 刪除原來的內容,使用如下的內容,在原來的基礎上看一下差別修改一下也成:- protocols = pop3
, a# Z( K+ G7 V" T, c
6 a0 a9 _% S- y! f, L I% w& H- # It's nice to have separate log files for Dovecot. You could do this
0 P' D H' J6 {5 E - # by changing syslog configuration also, but this is easier.3 Q& n. Q& |; i* t& ]( K" {+ o# t F
- log_path = /var/log/dovecot.log
5 k3 l. M6 f" o: W/ R. }$ w - info_log_path = /var/log/dovecot-info.log
8 Y9 d; [- E) s" I
+ Y2 I; U5 d& d6 d c" E- # Disable SSL for now.) N( V1 }8 O- a7 a
- ssl = yes
+ Q' K7 P( A3 ^$ b - ssl_cert = </etc/dovecot/dovecot.pem
0 ?9 N3 Z3 h7 ?- j, A# U( M - ssl_key = </etc/dovecot/private/dovecot.pem4 q" y- P- S+ g1 o b) e
/ @2 \* B( H4 g5 W: U o- disable_plaintext_auth = no0 G: `( Z# z, v/ x: A k" `
- : j& t% f3 r2 n2 U- W/ H
- # We're using Maildir format! u: q( }; y; c$ z& K* I* J
- mail_location = maildir:~/Maildir
$ ~' l7 Y6 B% D
/ B+ R) u2 ~6 S4 Q/ ?; n5 A" s- # If you're using POP3, you'll need this:
) C$ Z5 s, Q# z( h% H% _; k) x7 K - pop3_uidl_format = %g
6 _! M9 W( D I+ O, p: D. U" ?
( O6 B4 `7 ?2 A: [- # Authentication configuration:
& t3 y% w& D: O3 j) E - auth_verbose = yes; f0 m* u9 G- d% d6 J9 c" r
- auth_mechanisms = plain
: [. f4 b/ R$ s) ]; A- |1 `& t - passdb {
$ u8 }# D8 ]' b' j9 k' G8 z - driver = passwd-file% g6 J8 P, g: D5 P' g k
- args = /etc/dovecot/passwd% p. I5 L+ ^ [+ }# H& m9 D
- }
! a+ M/ {1 `' O1 K- @. A$ ?2 o% U - userdb {5 V/ M$ i& r6 M
- driver = static
, Y% _. z; `" ^$ g$ P - args = uid=vmail gid=vmail home=/home/vmail/%u5 T' @4 k# j' A
- }8 z, ]. e2 s" R3 g7 X2 O0 z
- ! H, b* [2 ?& ^4 G
- service lmtp {; e& V k1 p1 s6 C# w% r; I' H
- inet_listener lmtp {+ @) i: a( O2 V* `' `/ o
- address = 127.0.0.1 ::1& C& Z7 @+ {' ^1 s0 x# E' ?' G
- port = 24
& r5 N6 P! [/ M) I5 D+ M - }- N7 o: Z. Q- W' ]6 F! T1 `
- 8 j: L. v; v& ^* w: X
- unix_listener lmtp {0 w: C% w6 Q0 }. H4 z
- mode = 06669 b% ]- O) K; G& K' N
- }, T5 t8 [2 L6 W
- }
複製代碼
' C; q7 q( e2 H% c" u重啟服務:: `% J2 u+ t& X; I( i( A& }) Y
檢查一下dovecot是否已經在監聽端口:已經可以看到在監聽pop3,pop3s,還有lmtp的24號共3個端口了。
7 b, t9 f' R7 k( t* o, x' i6 h
8 X* l9 I$ C: ?. j e' Q* \
6 d) ?* V4 Y+ U; s/ G% {, j4. 配置exim:) T* c& |( M/ r; d5 K" O
運行配置嚮導:- dpkg-reconfigure exim4-config
複製代碼 這一個嚮導步驟比較多:
: `/ l+ f m; E9 u: |第一步要選internet site; mail is sent and received directly using SMTP* x! H% T c9 Y
然後遇到有textbox輸入的如果怕麻煩全部刪除原來內容,留空進下一步。 N' s+ X. r* [" B8 v
有一個問題:Keep number of DNS-queries minimal (Dial-on-Demand)? ,選默認No; H1 k# a [: I# ?) @
還有一個問題:Split configuration into small files?選Yes. i) L' ^4 B1 `% s' B8 q4 H
/ y2 |: L/ \4 p$ d% u& Q
配置exim進行lmtp方式投遞,運行:- pico /etc/exim4/conf.d/router/900_exim4-config_local_user
複製代碼 然後把文件內容替換為:- local_user:
6 p4 |+ Y0 p* Q9 C; X7 U/ p1 n - transport = dovecot_lmtp' Y6 z7 k( ^# [ Y7 p
- domains = +local_domains% J; O: q- n; z' w* q9 |
- driver = manualroute+ T) ~ ]0 D6 g4 C& f% Y
- route_list = "* 127.0.0.1 byname"
. o3 F7 M2 H5 N, K8 A - self = send* N' Q0 a( R, i& \
複製代碼
, r5 ^9 \% U. Z) r* j0 F運行以下命令,會新建一個文件:- pico /etc/exim4/conf.d/transport/40_exim4-config_dovecot_lmtp
複製代碼 然後輸入以下內容:- dovecot_lmtp:& z. l7 H' u% v! m; b9 a; y8 T
- driver = smtp
m' X0 J1 w d- O' p+ }. m - protocol = lmtp
+ ]7 m* M: s) z# s M6 ~4 p! p - port = 24
複製代碼 Y& I& a8 ?& h9 v7 c
重啟exim:檢查exim在公網監聽smtp端口:
: |* b5 O* j" Z8 ~- h X
一定要是*:smtp,如果只有127.0.0.1:smtp或者根本沒有smtp端口,說明配置錯誤。需要去/var/log/exim4里面看log文件排錯,另外dovecot的log也在/var/log/dovecot.log
; I# o$ y5 y4 e3 g7 G1 d
6 \. M( a7 r2 E1 G7 [我使用gmail pop3作為閱讀客戶端,所以沒有用imap,如果需要可以在安裝的時候執行,應該不需要額外的配置更改:- aptitude install dovecot-imapd
複製代碼 , U! }6 b- V/ [# R' U8 \3 U
|