本帖最後由 hudba 於 2014-1-15 13:26 編輯 % F/ C- K+ ^9 K% w: x& v
( {& V8 c! L. E+ G0 T
有一個自己的接收郵件服務器的好處:6 ~6 p1 T) [, ]+ |; G- S
- 主要是自由方便,
- 可以有自己的域名郵箱,
- 不求人,
- 想多少個名字就多少個名字
- L w) C& O! Z1 I- Y$ l
+ N. z8 ^/ |9 L& X( y1 | I發郵件相對簡單,這裡主要介紹如何使用dovecot配置一個接受郵件的服務器。
' k8 c" ?9 S4 B f' ^環境:
: v! d: x; v3 B: @9 b k T# f服務器使用debian,如果不是debian,配置文件的路徑稍有差別,需要自己修改,但過程一樣。
) A6 Y, C' g, U. W/ G& x郵件處理smtp協議使用:exim* i8 J% s2 B _0 V
郵件處理imap,pop3,lmtp協議使用:dovecot1 z5 v6 H! R, U2 c+ G$ f
) Q, s( o! z6 e, A2 @- p
郵件接收&閱讀原理:
& ` H Y" u9 o \. N郵件最終的投遞ip是由域名(比如yourdomain.com)裡面的mx記錄決定的。$ ~( b$ m! H- p
比如在namecheap裡面這樣設置後,@yourdomain.com的郵件將會由yourdomain.com的郵件服務器接收
- \' @6 @0 s* p% m+ n" G6 [
- w8 T- e1 N$ \$ ?, _$ {: c: H; L! r
郵件發出後會以smtp協議進行投遞,發送和接受郵件的服務器都要安裝處理smtp協議的軟件,我們這裡就是exim。
6 V4 s% i' C O4 P2 P) U* A! F我們的exim收到別處來的郵件後,需要用lmtp協議把郵件存起來,這裡我們使用dovecot處理lmtp協議。: l+ V0 `% o9 z5 N
郵件存儲了,需要閱讀的時候,需要使用pop3或者imap協議,dovecot也會處理這兩個協議。 R3 Q' w3 _ U4 L5 Y& S
郵件閱讀還需要客戶端,可以使用gmail或者outlook這些去和dovecot通訊下載郵件來讀。" x, L% A* C; W' y- V) Q" {
2 ^% b4 Q. h: f) A2 c4 E安裝步驟:0 u3 e% }2 u8 a
1. 去namecheap裡面設置mx,把@yourdomain.com設置到你的vps上面,如上面所附圖
9 L6 a. J7 a2 P* L4 ~& }
3 E9 W6 i# H4 T% @2. 安裝exim 和dovecot- aptitude install exim dovecot-pop3d dovecot-lmtpd
複製代碼 3. 配置dovecot- U6 Y* @: S/ w0 f; j$ U: i2 f
建立一個linux用戶專用存放郵件,這樣收到的郵件都將存到/home/vmail裡面:- groupadd vmail3 R4 J% X* }6 R+ N& i1 D
- useradd vmail -r -g vmail -d /home/vmail -m -s /sbin/nologin -c "mail user"
複製代碼 4 ^" S. l$ K0 Y8 d' N
設置郵箱賬戶,運行:然後輸入用戶名,密碼組合如下格式,想輸入多少賬戶就輸入多少賬戶:
- @, s! d4 C1 \; R配置dovecot本身,運行:- pico /etc/dovecot/dovecot.conf
複製代碼 刪除原來的內容,使用如下的內容,在原來的基礎上看一下差別修改一下也成:- protocols = pop3
. L- i% k9 G1 l: o
. K- T3 ~' h) Y7 G! h: J) y b- # It's nice to have separate log files for Dovecot. You could do this1 S' `! `1 t( M8 _& r% U! `
- # by changing syslog configuration also, but this is easier.
U7 F: X, O/ Z7 T: [ - log_path = /var/log/dovecot.log* a8 e) i* x8 H. t N4 K
- info_log_path = /var/log/dovecot-info.log3 f! n1 F" E6 Y- C# |2 x" b* ]
# w% g. m k' [% W+ ~5 p- B- # Disable SSL for now.( O: _6 x$ R7 w9 C, r
- ssl = yes* x4 j9 H; V P" g9 J" w
- ssl_cert = </etc/dovecot/dovecot.pem/ y& \& s8 |: m6 B. T
- ssl_key = </etc/dovecot/private/dovecot.pem
4 U _6 s) l4 a - " E( k% T$ R/ B+ [
- disable_plaintext_auth = no
6 z1 G; x4 I% v: w8 K
* Y2 R2 W; d$ {1 W- # We're using Maildir format
' E6 D4 Z0 H! _4 V0 b1 ~ - mail_location = maildir:~/Maildir
4 ^3 p/ d0 D3 l; l8 f1 A- _
3 F. X( U, u% [2 g% b F7 `6 i6 u; r- # If you're using POP3, you'll need this:
! t6 [' c9 O/ R: x v- m% J5 P! c - pop3_uidl_format = %g/ N& M6 ?$ x; i
- # j. ]6 ?2 t% r5 b* i
- # Authentication configuration:# Y- c2 C, d! |6 I, n
- auth_verbose = yes& X4 [& m. R% r- D7 C3 n. Q
- auth_mechanisms = plain( ?7 A+ M4 H0 G( ?6 v" \8 i
- passdb {( |2 w9 d- w* Q3 j& `
- driver = passwd-file" P! H1 [$ ?9 R. I
- args = /etc/dovecot/passwd0 E$ F' _3 f- C1 ~2 L4 ` k) N5 s
- }
7 Q: Z1 |. P8 l2 @9 C3 r9 q/ Y# N - userdb {+ x6 h8 [5 \! g& E6 r3 l( L) E
- driver = static$ K6 S- Z# A4 O; i# o
- args = uid=vmail gid=vmail home=/home/vmail/%u( O/ d% a0 i6 \& }6 ]/ n
- }+ c( U- ?% ?* [9 m+ y$ b9 v% o
% W# q/ c' _0 t$ Y- service lmtp {
4 j5 i8 P. h Q - inet_listener lmtp {
) U/ M! w" z2 o. M& ~" n - address = 127.0.0.1 ::1; n- a% t0 `. k9 P
- port = 24: F! S" A- n+ @; q4 f
- }0 Y- a1 Z* g) p
- % L0 n; a, w# ~# M. t8 e o
- unix_listener lmtp {0 G# b. E, J! x7 \4 N# \. E# d# x7 t
- mode = 0666
+ J! S# [( c8 b5 o2 ^ - }/ X7 `: x9 z* B4 f( j3 ]- w
- }
複製代碼
! \( v6 L7 o/ {: ?+ {6 x* U重啟服務:
4 l/ H( L3 f, J- }檢查一下dovecot是否已經在監聽端口:已經可以看到在監聽pop3,pop3s,還有lmtp的24號共3個端口了。- S% ?2 s0 e+ Y& _. A& M
" Q% T/ d" r0 Z! o
. q. ]2 c1 |% E2 H, K X. V
4. 配置exim:0 ?8 d, F: A+ x# C# c) t* m: R
運行配置嚮導:- dpkg-reconfigure exim4-config
複製代碼 這一個嚮導步驟比較多:
9 |6 F: U2 j8 E. Q, y) t/ | w# e第一步要選internet site; mail is sent and received directly using SMTP
" A+ X( r, v$ @" s然後遇到有textbox輸入的如果怕麻煩全部刪除原來內容,留空進下一步。
, O$ Y4 m$ P8 Y. i1 D4 S( z0 x有一個問題:Keep number of DNS-queries minimal (Dial-on-Demand)? ,選默認No
- E$ z" m: C6 C1 S還有一個問題:Split configuration into small files?選Yes$ t% d3 O1 T% E9 E g
9 `/ r2 D6 Q l; C& |3 N& j ^2 J
配置exim進行lmtp方式投遞,運行:- pico /etc/exim4/conf.d/router/900_exim4-config_local_user
複製代碼 然後把文件內容替換為:- local_user:6 d( t4 z0 S" @
- transport = dovecot_lmtp
1 h3 R& X3 Y3 I' P$ y - domains = +local_domains
8 s& t1 `( p" I; C) P - driver = manualroute: L* q. f) r6 t I
- route_list = "* 127.0.0.1 byname") T0 F$ h7 }4 A. X
- self = send
) R- w, P/ Q0 U$ c3 C1 l& R* i3 `
複製代碼 ; V$ n; P! g& H" k0 Y6 E
運行以下命令,會新建一個文件:- pico /etc/exim4/conf.d/transport/40_exim4-config_dovecot_lmtp
複製代碼 然後輸入以下內容:- dovecot_lmtp:4 n% F& }0 Z/ C0 }
- driver = smtp
* f# l1 |* a: L4 _! a - protocol = lmtp6 h1 E) w2 X1 ~3 E
- port = 24
複製代碼 * H g1 {" ?: q5 P
重啟exim:檢查exim在公網監聽smtp端口:
3 ~, v. C& q. W$ t' w! z
一定要是*:smtp,如果只有127.0.0.1:smtp或者根本沒有smtp端口,說明配置錯誤。需要去/var/log/exim4里面看log文件排錯,另外dovecot的log也在/var/log/dovecot.log
8 j; @ u% |6 A7 c2 b `! `/ a1 Z' O) t+ O+ ]
我使用gmail pop3作為閱讀客戶端,所以沒有用imap,如果需要可以在安裝的時候執行,應該不需要額外的配置更改:- aptitude install dovecot-imapd
複製代碼 4 \$ m' g- ?; t) P# a
|