本帖最後由 hudba 於 2014-1-15 13:26 編輯
, `6 U3 f6 ]; \, \0 M0 P# K, @2 w0 d+ x5 X! @5 H; g0 L5 H
有一個自己的接收郵件服務器的好處:
+ r% D1 O) N3 {7 G& V$ a+ V$ n$ E# s- 主要是自由方便,
- 可以有自己的域名郵箱,
- 不求人,
- 想多少個名字就多少個名字) h3 S! g- C& J* J% W
, H: r7 v! f6 S. A+ |' b0 @發郵件相對簡單,這裡主要介紹如何使用dovecot配置一個接受郵件的服務器。7 K( A% f" q( T. Z+ `2 [$ l& C- u& Q
環境:
3 @3 a6 i, y- y, M: F) Q' k5 [服務器使用debian,如果不是debian,配置文件的路徑稍有差別,需要自己修改,但過程一樣。
5 c3 W& i A# g: d2 @, I郵件處理smtp協議使用:exim% u+ ^% ?5 M" O
郵件處理imap,pop3,lmtp協議使用:dovecot
' }! J3 i4 L5 D6 Z% A1 L
/ X) A0 q" ~* |郵件接收&閱讀原理:2 r# G& q' Q4 u5 a( U1 h/ @
郵件最終的投遞ip是由域名(比如yourdomain.com)裡面的mx記錄決定的。7 a' S) s( P! C7 g/ U
比如在namecheap裡面這樣設置後,@yourdomain.com的郵件將會由yourdomain.com的郵件服務器接收, _1 U) g2 [3 b/ w; O* B
6 g( y+ I$ [5 A% m4 V2 E% ?郵件發出後會以smtp協議進行投遞,發送和接受郵件的服務器都要安裝處理smtp協議的軟件,我們這裡就是exim。4 L& ~+ ]5 {( d* q5 k( c5 B- O
我們的exim收到別處來的郵件後,需要用lmtp協議把郵件存起來,這裡我們使用dovecot處理lmtp協議。
. ~2 L n' F/ \& O) B/ K" B. b, w郵件存儲了,需要閱讀的時候,需要使用pop3或者imap協議,dovecot也會處理這兩個協議。; l7 O' H* P- U2 K# j$ B9 d& R
郵件閱讀還需要客戶端,可以使用gmail或者outlook這些去和dovecot通訊下載郵件來讀。
1 |" }" {: R3 P3 N, J" d! B& Q4 t
8 {& C e6 o8 Z% M3 ~' r& @1 V安裝步驟:
; c7 U+ B6 o7 r- f0 y+ }* |' k1. 去namecheap裡面設置mx,把@yourdomain.com設置到你的vps上面,如上面所附圖
7 |, u+ ^# R6 H
& O! u! ?! S# A2. 安裝exim 和dovecot- aptitude install exim dovecot-pop3d dovecot-lmtpd
複製代碼 3. 配置dovecot; s( L' _4 p/ F# K7 ~2 ?
建立一個linux用戶專用存放郵件,這樣收到的郵件都將存到/home/vmail裡面:- groupadd vmail
: t, w$ O9 K4 g7 v- c) J+ O Q" J8 r - useradd vmail -r -g vmail -d /home/vmail -m -s /sbin/nologin -c "mail user"
複製代碼 ! {. ^+ f' O6 e$ J6 x& b3 D2 \
設置郵箱賬戶,運行:然後輸入用戶名,密碼組合如下格式,想輸入多少賬戶就輸入多少賬戶:- info@yourdomain.com:{PLAIN}mypassword
& P) `: T2 J$ e) j. a+ R* n - webmaster@yourdomain.com:{PLAIN}anotherpassword
- G$ j6 B4 S) m1 k. \# s2 x
複製代碼
2 h* S9 E. e, P+ I配置dovecot本身,運行:- pico /etc/dovecot/dovecot.conf
複製代碼 刪除原來的內容,使用如下的內容,在原來的基礎上看一下差別修改一下也成:- protocols = pop3
$ D5 D* W4 n: p$ N! b4 J* e - 1 d: `0 [, x* a, Y& |8 M
- # It's nice to have separate log files for Dovecot. You could do this: S5 r6 }3 i3 u! Z
- # by changing syslog configuration also, but this is easier.' o+ A2 F% k7 B. J$ E$ H* f
- log_path = /var/log/dovecot.log8 F! _% p1 h9 K6 E! f3 O& n2 M# Q$ i
- info_log_path = /var/log/dovecot-info.log/ N/ T P; H8 q- I
( O# J+ c9 [) R; v. `7 _4 }$ \- # Disable SSL for now.: i2 C& X O! X- a
- ssl = yes$ a- e# j' H7 @1 w
- ssl_cert = </etc/dovecot/dovecot.pem
. e; a' v R5 n2 a; a1 ~ - ssl_key = </etc/dovecot/private/dovecot.pem
! D0 c& M/ \9 ?. [$ { - . x: @% B, I2 h3 y0 }
- disable_plaintext_auth = no% q1 v* }# n' o4 S3 G
- ( b! ~- \$ T$ T6 H4 t$ G
- # We're using Maildir format3 \/ [5 @7 @% h/ v7 _0 e1 m7 w
- mail_location = maildir:~/Maildir
+ g+ Y5 I I9 ` - . R: B& {4 B7 \
- # If you're using POP3, you'll need this:
: x2 _3 o/ v2 q- I" N - pop3_uidl_format = %g9 M& s5 c) c* _
3 `9 x% w" f$ s2 V5 G- # Authentication configuration:
3 o2 Q' @2 X0 `* d0 }' l9 N: s) o - auth_verbose = yes8 e) t% p! Q7 S) o; z& d# j: Q5 L
- auth_mechanisms = plain
8 |$ {* `: q7 @ q. Y' B - passdb {
3 l. b( r) L4 k4 P2 r3 F - driver = passwd-file0 O! V2 z. r6 I) R6 M+ K! _# A
- args = /etc/dovecot/passwd7 T6 L2 ^ {( u* t: ]' [' O
- }
6 E- z; h2 j' [! y" U9 u - userdb {+ I& X5 s8 z" }& h1 a6 r3 c5 ^7 _( q
- driver = static
5 b7 `8 z; n, T - args = uid=vmail gid=vmail home=/home/vmail/%u- V8 J% W3 I! v
- }9 z, c' w8 j7 C. F7 I" j
- 6 V- |6 ] s7 T7 o: I
- service lmtp {7 I$ Z$ Y8 H: O" j* o
- inet_listener lmtp {
- \; f: v* I* J - address = 127.0.0.1 ::1& \& |! M+ Z, \( V
- port = 24
9 T% Y; o0 A7 ^8 o+ R$ | - }
$ e4 x6 T1 g" D h8 s3 [/ p
: x! R! C: I7 Q+ k7 s- unix_listener lmtp {- A8 t, w! |8 D2 y( k" {
- mode = 0666" j* \ O0 S/ e6 ?$ Y2 I% q9 _; y/ k
- }
3 y" ]# ?- k9 g+ S; y - }
複製代碼
. m7 g& |, K6 r) N5 W重啟服務:
7 u! ~. g5 U K% J( |; M檢查一下dovecot是否已經在監聽端口:已經可以看到在監聽pop3,pop3s,還有lmtp的24號共3個端口了。
6 K: x: q/ L" } F. Z
& Q9 e6 n/ C8 I7 j
: z; a* Q6 W1 L. i6 C4. 配置exim:
: Q- `4 Y! l; q- N運行配置嚮導:- dpkg-reconfigure exim4-config
複製代碼 這一個嚮導步驟比較多:1 ?7 R" X, a0 U$ {4 X8 ~' o/ _
第一步要選internet site; mail is sent and received directly using SMTP
# K3 r2 w+ E, Y* x+ U然後遇到有textbox輸入的如果怕麻煩全部刪除原來內容,留空進下一步。
2 N7 `# B' y( i0 o1 T! |有一個問題:Keep number of DNS-queries minimal (Dial-on-Demand)? ,選默認No
0 H% \# \1 g( P" Q1 Y還有一個問題:Split configuration into small files?選Yes
) g9 ^3 q. E$ `1 W G) H; d0 d4 g0 [2 a
配置exim進行lmtp方式投遞,運行:- pico /etc/exim4/conf.d/router/900_exim4-config_local_user
複製代碼 然後把文件內容替換為:- local_user:
' L4 n4 @$ F N8 b0 G( P - transport = dovecot_lmtp; k$ ]1 U; Q" z+ m, w3 W
- domains = +local_domains
7 \6 v9 _1 y1 M: N& X- W - driver = manualroute
; S7 _ t5 I- l" x - route_list = "* 127.0.0.1 byname"- m0 Z1 f- [- }0 O5 L0 m& j& |2 N
- self = send
) e( ]* U+ i: Q
複製代碼 1 |! w# d" H& h+ Y/ t
運行以下命令,會新建一個文件:- pico /etc/exim4/conf.d/transport/40_exim4-config_dovecot_lmtp
複製代碼 然後輸入以下內容:- dovecot_lmtp:: ]4 ?, s5 h/ v0 \- {
- driver = smtp
- z1 x$ y: a* \* y& S3 f - protocol = lmtp' a+ Y( o: O1 Z2 g: a) V* ]
- port = 24
複製代碼 5 f5 g J5 K: p
重啟exim:檢查exim在公網監聽smtp端口:
2 l8 N$ G" w9 F6 F0 F一定要是*:smtp,如果只有127.0.0.1:smtp或者根本沒有smtp端口,說明配置錯誤。需要去/var/log/exim4里面看log文件排錯,另外dovecot的log也在/var/log/dovecot.log) A. ?0 a6 u# j7 L; X
) Y3 n# i* n2 s6 e- C( C& Q
我使用gmail pop3作為閱讀客戶端,所以沒有用imap,如果需要可以在安裝的時候執行,應該不需要額外的配置更改:- aptitude install dovecot-imapd
複製代碼
; F% z: W) k9 y) `& i0 ? u, U$ T |