本帖最後由 hudba 於 2014-1-15 13:26 編輯
4 Z' B& k( \% [& P! u9 Z" X, \% V4 |
有一個自己的接收郵件服務器的好處:
" D) d$ I) H& w& b7 e0 E- 主要是自由方便,
- 可以有自己的域名郵箱,
- 不求人,
- 想多少個名字就多少個名字0 d6 C% D7 d Y
# L/ l' x; J$ t4 V7 a發郵件相對簡單,這裡主要介紹如何使用dovecot配置一個接受郵件的服務器。2 x( h |/ Z G0 P. f4 f
環境:2 t/ h) ?; o8 I5 y& Z5 x; }/ Q8 ]2 l
服務器使用debian,如果不是debian,配置文件的路徑稍有差別,需要自己修改,但過程一樣。
; w& h/ L7 Y u7 c2 u# I$ `郵件處理smtp協議使用:exim! L3 T6 u. Z" _+ |7 G4 {
郵件處理imap,pop3,lmtp協議使用:dovecot
4 X- T8 j" x. l( u! F4 C
$ b1 ^% i- \$ r3 q9 G郵件接收&閱讀原理:
, N; r7 t# |/ _* T郵件最終的投遞ip是由域名(比如yourdomain.com)裡面的mx記錄決定的。/ Z4 g$ p0 E. r
比如在namecheap裡面這樣設置後,@yourdomain.com的郵件將會由yourdomain.com的郵件服務器接收
( p, v4 P0 M: b- `; E. B' `, L
+ k' I( G2 }5 w. Z" C郵件發出後會以smtp協議進行投遞,發送和接受郵件的服務器都要安裝處理smtp協議的軟件,我們這裡就是exim。
: v% |# g. X( W8 d! X- o" r我們的exim收到別處來的郵件後,需要用lmtp協議把郵件存起來,這裡我們使用dovecot處理lmtp協議。
& u6 \- P0 ^) X* k* T; \% m2 h( \郵件存儲了,需要閱讀的時候,需要使用pop3或者imap協議,dovecot也會處理這兩個協議。+ v( Y5 A. O6 T5 E l
郵件閱讀還需要客戶端,可以使用gmail或者outlook這些去和dovecot通訊下載郵件來讀。
8 y2 S9 y6 f+ e8 x, f0 b
8 O( e/ k1 x) u% C# k安裝步驟:
- E w. N0 D) }( s1. 去namecheap裡面設置mx,把@yourdomain.com設置到你的vps上面,如上面所附圖
' Q# T/ S& U8 V7 T3 G( I7 H/ r6 I( i2 K! g7 W8 R
2. 安裝exim 和dovecot- aptitude install exim dovecot-pop3d dovecot-lmtpd
複製代碼 3. 配置dovecot
" [0 \- Q- E) j+ P3 H" R7 d建立一個linux用戶專用存放郵件,這樣收到的郵件都將存到/home/vmail裡面:- groupadd vmail3 f0 D1 b$ o: O( R9 I; F4 D- a1 E" O
- useradd vmail -r -g vmail -d /home/vmail -m -s /sbin/nologin -c "mail user"
複製代碼
9 y1 `5 D+ p8 k( s4 H" X- i8 X8 \設置郵箱賬戶,運行:然後輸入用戶名,密碼組合如下格式,想輸入多少賬戶就輸入多少賬戶:- info@yourdomain.com:{PLAIN}mypassword
) ^2 K; m6 a9 h/ z- g - webmaster@yourdomain.com:{PLAIN}anotherpassword* e. W3 S8 {0 y5 u
複製代碼 1 a1 s+ l9 k/ [7 S7 g4 v& h; O2 o
配置dovecot本身,運行:- pico /etc/dovecot/dovecot.conf
複製代碼 刪除原來的內容,使用如下的內容,在原來的基礎上看一下差別修改一下也成:- protocols = pop34 u: e' S+ T; n4 E$ F
- / B: N( a Q6 o0 @0 q
- # It's nice to have separate log files for Dovecot. You could do this
: R1 a8 c; Y3 {7 m Z9 l - # by changing syslog configuration also, but this is easier.( z8 t( U, q; j7 k0 \
- log_path = /var/log/dovecot.log& c' Y1 x; x7 G- r0 v
- info_log_path = /var/log/dovecot-info.log2 K0 i8 {. U& h0 F8 b/ G/ I
s* X: S9 y" y; L& l- # Disable SSL for now.
+ U2 G( l/ `) o' G; V& t$ F& I - ssl = yes
. p' q; x4 e+ j; T% K - ssl_cert = </etc/dovecot/dovecot.pem
+ O X& R8 a$ i9 j - ssl_key = </etc/dovecot/private/dovecot.pem' t% C# |4 W7 F
) ~6 u' N( _( N H- disable_plaintext_auth = no
$ G+ S# N% B/ m: B3 E+ p; f - 0 j7 `; ]. Y% Z( M" w
- # We're using Maildir format5 P2 R. i4 _8 D/ r" H: X2 |$ o
- mail_location = maildir:~/Maildir! ~1 r# r% J& R! _
- N) G- p6 r) R$ `0 l1 X* k- # If you're using POP3, you'll need this:# v5 e( k# ~6 y; p
- pop3_uidl_format = %g2 S! Z' D( x8 k: @* F: a8 u R
- 0 O/ m" R/ p+ k/ r" Y8 `
- # Authentication configuration:; U' u- O. k0 }- C' m
- auth_verbose = yes1 }( e# C, ]; h* C$ {* c- r
- auth_mechanisms = plain
: w! a E, c( d3 ~" {! f3 A - passdb {4 f6 I0 ]# t, Y2 _5 [/ {
- driver = passwd-file: ?8 S" j# N/ B. }: {$ W J
- args = /etc/dovecot/passwd
" ]! u5 j( ?1 ]7 B: @$ } - }
- D, ]0 h# K: C e3 s! {* B' s" | - userdb {; k; }( d5 e7 Z- T
- driver = static) F7 |+ D4 ]' K( J. w8 R+ M: _: I
- args = uid=vmail gid=vmail home=/home/vmail/%u
4 s4 _' `( R: c2 T2 A4 @1 n6 W - }
0 R6 u8 \& ?8 \1 d2 k* H% P4 M* } - : q$ p' ?2 o* b
- service lmtp {( p: a+ x* W4 }. \/ C! O! [+ t
- inet_listener lmtp {
. P' D% g% U, B. _& J6 G, N- C - address = 127.0.0.1 ::1
6 ` S1 ?0 |/ ?! \* s8 U - port = 24
$ J2 M8 L1 u/ p" W. N; E5 s - }
- u% Y' T+ C1 O. o! N1 u4 P7 N3 s5 b - ! W. ^2 G5 c" \- a0 W K7 G
- unix_listener lmtp {
9 H2 L8 D# G. A0 c# C" A1 p9 v. { - mode = 0666# `7 n7 x- `9 h9 F2 M
- }0 \8 n J K- O3 I& Y9 O6 C
- }
複製代碼
+ Q- X- w# D, _/ E1 f, U8 d重啟服務:3 m- Q& i2 r9 ^! N- h/ s2 b
檢查一下dovecot是否已經在監聽端口:已經可以看到在監聽pop3,pop3s,還有lmtp的24號共3個端口了。
4 H' e6 J3 |, e) q. Y
5 S' b8 r* S( T! l* D0 L
: r/ [7 G, I5 b6 z
4. 配置exim:
( H" [, o5 c1 g/ i; n: z M運行配置嚮導:- dpkg-reconfigure exim4-config
複製代碼 這一個嚮導步驟比較多:
: } u, e8 w' n) p7 h第一步要選internet site; mail is sent and received directly using SMTP
5 i8 t6 v7 I+ `2 J* _9 C然後遇到有textbox輸入的如果怕麻煩全部刪除原來內容,留空進下一步。
; O; Q1 n7 o' ~. \2 q0 H有一個問題:Keep number of DNS-queries minimal (Dial-on-Demand)? ,選默認No
L% Y- A4 y' @6 c0 V還有一個問題:Split configuration into small files?選Yes
- C8 n2 w: u% @# [- A$ h$ n2 J4 k- o; x
配置exim進行lmtp方式投遞,運行:- pico /etc/exim4/conf.d/router/900_exim4-config_local_user
複製代碼 然後把文件內容替換為:- local_user:: I5 j$ F W0 J- \
- transport = dovecot_lmtp4 V! U7 d/ V8 F, B. ~7 R
- domains = +local_domains" a0 u- D3 N) N9 W
- driver = manualroute, H) c' h8 K( \" i
- route_list = "* 127.0.0.1 byname"1 G5 L, V- X7 h; j; i7 w W
- self = send2 D1 W2 R6 Y% M/ Y
複製代碼 , b2 I" F6 ]& K. p% }; T8 Q2 X
運行以下命令,會新建一個文件:- pico /etc/exim4/conf.d/transport/40_exim4-config_dovecot_lmtp
複製代碼 然後輸入以下內容:- dovecot_lmtp:& q# O! H7 q" I1 `' @
- driver = smtp% n9 T1 ?, Y& J. t
- protocol = lmtp
0 d+ ~4 B5 R' ^- H1 ]: x0 d - port = 24
複製代碼
f! M8 `+ G$ z9 s1 k4 K重啟exim:檢查exim在公網監聽smtp端口:
- ~0 A0 G$ {" C q. G. ^一定要是*:smtp,如果只有127.0.0.1:smtp或者根本沒有smtp端口,說明配置錯誤。需要去/var/log/exim4里面看log文件排錯,另外dovecot的log也在/var/log/dovecot.log
2 d+ P. _1 Q& E' o9 m
7 |8 q% i1 {( I: F' l我使用gmail pop3作為閱讀客戶端,所以沒有用imap,如果需要可以在安裝的時候執行,應該不需要額外的配置更改:- aptitude install dovecot-imapd
複製代碼
I8 N/ P+ M4 v1 V |