本帖最後由 hudba 於 2014-1-15 13:26 編輯 9 T9 a+ |- \: X0 t/ r
J& l& H( B2 }
有一個自己的接收郵件服務器的好處:. [3 i) `+ e6 l( Z/ w2 U J
- 主要是自由方便,
- 可以有自己的域名郵箱,
- 不求人,
- 想多少個名字就多少個名字
4 q( b3 A3 \0 O( f
- \1 u% U7 i/ P2 Q% _發郵件相對簡單,這裡主要介紹如何使用dovecot配置一個接受郵件的服務器。
8 g8 C3 I# z% T7 k# z* A% x5 Z環境:
6 f( ?9 ]% a- b5 h, p; W6 B/ X服務器使用debian,如果不是debian,配置文件的路徑稍有差別,需要自己修改,但過程一樣。 C+ z, q7 w+ p
郵件處理smtp協議使用:exim
) v1 S5 q5 T/ `+ v郵件處理imap,pop3,lmtp協議使用:dovecot
( O3 K2 {2 _9 Q: r @; J% }& [6 ^2 c* }& H/ M8 g* Y0 t1 p
郵件接收&閱讀原理:
6 q& y( z+ e3 p' G7 ?郵件最終的投遞ip是由域名(比如yourdomain.com)裡面的mx記錄決定的。
: }9 j, y' R6 g' \% a q! o比如在namecheap裡面這樣設置後,@yourdomain.com的郵件將會由yourdomain.com的郵件服務器接收) h( e9 b7 ?' Y* _0 r: G$ \8 @
/ @, c0 m- [: d. b2 ^) _* ?$ Q
郵件發出後會以smtp協議進行投遞,發送和接受郵件的服務器都要安裝處理smtp協議的軟件,我們這裡就是exim。' C# N5 n+ p$ d/ U; d" Z, ?
我們的exim收到別處來的郵件後,需要用lmtp協議把郵件存起來,這裡我們使用dovecot處理lmtp協議。
' ^8 `( j6 m5 X G- J郵件存儲了,需要閱讀的時候,需要使用pop3或者imap協議,dovecot也會處理這兩個協議。+ G( j, e7 w, E. L
郵件閱讀還需要客戶端,可以使用gmail或者outlook這些去和dovecot通訊下載郵件來讀。
, S7 m3 K: W+ Z' Z9 E c; I$ {# y( ?! [
安裝步驟:. [* N! B! u. _! m- j# t" W3 X
1. 去namecheap裡面設置mx,把@yourdomain.com設置到你的vps上面,如上面所附圖
: F+ q5 U" e- N) k( n# V, [- _! R" z R6 F' l/ l- A" ~
2. 安裝exim 和dovecot- aptitude install exim dovecot-pop3d dovecot-lmtpd
複製代碼 3. 配置dovecot
5 @0 B9 M C% e7 ^* @6 W建立一個linux用戶專用存放郵件,這樣收到的郵件都將存到/home/vmail裡面:- groupadd vmail8 Z- v4 x# g: }
- useradd vmail -r -g vmail -d /home/vmail -m -s /sbin/nologin -c "mail user"
複製代碼 7 P Y5 A @$ O- {3 ?
設置郵箱賬戶,運行:然後輸入用戶名,密碼組合如下格式,想輸入多少賬戶就輸入多少賬戶:- info@yourdomain.com:{PLAIN}mypassword8 ]# W( n& k5 P0 A8 M# R
- webmaster@yourdomain.com:{PLAIN}anotherpassword
3 e; e/ j+ O! h
複製代碼 % b4 B1 X2 }) Q5 s
配置dovecot本身,運行:- pico /etc/dovecot/dovecot.conf
複製代碼 刪除原來的內容,使用如下的內容,在原來的基礎上看一下差別修改一下也成:- protocols = pop3
$ O5 v( d) }' | - # {: x* y4 m; [) X
- # It's nice to have separate log files for Dovecot. You could do this; i1 \+ k8 Q& A7 B# x0 [
- # by changing syslog configuration also, but this is easier.
: Z' h- X4 T, f - log_path = /var/log/dovecot.log& j* I" z9 |' j9 b' v1 g0 n
- info_log_path = /var/log/dovecot-info.log$ b5 c8 ]" q$ G+ a+ z5 I% l
$ V7 I# @( E4 n) T- # Disable SSL for now.4 \/ `. Q, U. P! q
- ssl = yes
: c/ f8 @; e: t) N1 _- ^ - ssl_cert = </etc/dovecot/dovecot.pem6 n$ b! _6 e0 w* {
- ssl_key = </etc/dovecot/private/dovecot.pem
6 {4 K$ _1 w9 R, D
4 L' W& g3 l6 N: H* r; Z$ K7 o- disable_plaintext_auth = no
* p3 z3 _! w0 Q
/ V% T7 z7 o$ J- # We're using Maildir format
" I+ e' Q1 b/ Z, O# Y" L/ R - mail_location = maildir:~/Maildir: ^' s2 A+ C+ |1 a1 c' \9 Y( g" k# L
+ _( t7 x0 e* H/ G+ {% t* W0 ^- # If you're using POP3, you'll need this:3 D. W: F# ~: }6 L3 u1 z# {
- pop3_uidl_format = %g3 L6 T: H( _" y
2 g: z w6 {$ s; d8 [# L- \- # Authentication configuration:
k ?3 I9 p) G8 ^ - auth_verbose = yes
5 w; j! @5 D3 S1 u( n - auth_mechanisms = plain2 `" w+ z! [4 r! n
- passdb {* g* l1 R ?. H! `! n
- driver = passwd-file% P- l6 W) c# o/ N1 t) H `
- args = /etc/dovecot/passwd
( _, D7 A$ J7 m' ]( O - }; m4 I( X, g: C1 Y0 E% }- G
- userdb {
+ F# \; f1 A r. z$ E! Y% V1 e" ^ - driver = static
. {( A; K% X: ~' ]+ t* Q - args = uid=vmail gid=vmail home=/home/vmail/%u/ W! o% [- L& E' \9 W
- }8 x4 z) ?" @8 [' y8 |7 Y# ?) m0 ^
- |+ [" @$ d% R8 k- service lmtp {
$ [" ?- j! W2 q9 e8 }" b - inet_listener lmtp {5 v* ?2 m( K1 j
- address = 127.0.0.1 ::1
1 o4 _9 ~4 w2 f" ~" S a! X" P - port = 24' Y b% } f0 [- D* ?$ ^$ R
- }( W1 V# O1 o0 @# y& Z+ b
+ T( d+ T1 f% W$ V- unix_listener lmtp {
/ H* t) m( Z$ D2 o& H$ _ - mode = 0666
* X% A7 P7 [( L. K6 O - }
* `3 p* h3 \6 C6 C/ D - }
複製代碼
* o A# |$ n& L* G重啟服務:- x! _, B" e; d. ?" J- Q
檢查一下dovecot是否已經在監聽端口:已經可以看到在監聽pop3,pop3s,還有lmtp的24號共3個端口了。6 E s0 M" U' \3 `. F
& t2 Y: t) s9 F0 P B
" x& o6 J/ P% q6 N" {: f- w4. 配置exim:0 M9 m' O- r9 A- P( }* l
運行配置嚮導:- dpkg-reconfigure exim4-config
複製代碼 這一個嚮導步驟比較多:% L$ f' L8 ?0 Y( l$ d* i
第一步要選internet site; mail is sent and received directly using SMTP
8 Y3 z4 D K# R8 c! @5 J% m然後遇到有textbox輸入的如果怕麻煩全部刪除原來內容,留空進下一步。- e9 B/ w( u }+ T
有一個問題:Keep number of DNS-queries minimal (Dial-on-Demand)? ,選默認No4 V$ i1 R" j% M8 G: ^
還有一個問題:Split configuration into small files?選Yes
3 o! r9 b9 Q6 Q
3 S7 g) Y2 _9 ^, h& g; }6 b3 ~配置exim進行lmtp方式投遞,運行:- pico /etc/exim4/conf.d/router/900_exim4-config_local_user
複製代碼 然後把文件內容替換為:- local_user:' y6 d6 F/ A* U- X) q, x1 C2 d* d0 `- u
- transport = dovecot_lmtp9 a4 e! L; i. D
- domains = +local_domains$ I. Y. U" I. }' G0 B6 l- y/ W
- driver = manualroute
8 J; \: S/ v j - route_list = "* 127.0.0.1 byname"3 ?" _" e$ S3 }+ a4 T
- self = send! R) L9 \3 k; b4 L$ A6 f T
複製代碼 s; ^6 |& I- p* Y+ h: L! x' C
運行以下命令,會新建一個文件:- pico /etc/exim4/conf.d/transport/40_exim4-config_dovecot_lmtp
複製代碼 然後輸入以下內容:- dovecot_lmtp:( u" P/ A" L. E/ G1 D# C# ]* u
- driver = smtp
. g9 Q5 t+ o) E - protocol = lmtp# g$ k; v* r4 `: [6 V
- port = 24
複製代碼
6 s# a' O9 k3 [/ {6 [6 W8 h) F6 c重啟exim:檢查exim在公網監聽smtp端口:
- T# r1 f7 \' F( o2 V
一定要是*:smtp,如果只有127.0.0.1:smtp或者根本沒有smtp端口,說明配置錯誤。需要去/var/log/exim4里面看log文件排錯,另外dovecot的log也在/var/log/dovecot.log
$ W1 e0 R0 J, y$ p) x4 n, \; ]: u& G5 E
我使用gmail pop3作為閱讀客戶端,所以沒有用imap,如果需要可以在安裝的時候執行,應該不需要額外的配置更改:- aptitude install dovecot-imapd
複製代碼 - g5 \9 q+ P, J4 o# C, |6 \" y
|