本帖最後由 hudba 於 2014-1-15 13:26 編輯 : M; ]3 v# D' T8 @
9 ]4 T* ^0 Y4 @3 H
有一個自己的接收郵件服務器的好處:
# K& q' U/ ~; m9 m0 C" S- 主要是自由方便,
- 可以有自己的域名郵箱,
- 不求人,
- 想多少個名字就多少個名字* x/ D' N' i# T( q. b5 O+ ^' R
7 C4 Z6 [8 R2 o& x3 w0 s
發郵件相對簡單,這裡主要介紹如何使用dovecot配置一個接受郵件的服務器。
1 o4 C1 {& P$ Z& `環境:
( p6 h; i. c1 t2 j# E服務器使用debian,如果不是debian,配置文件的路徑稍有差別,需要自己修改,但過程一樣。
' o2 L& f- P- j3 V0 {郵件處理smtp協議使用:exim
3 M5 r' \0 s7 O: v/ y+ d# X郵件處理imap,pop3,lmtp協議使用:dovecot- Q9 t* f3 r) A7 r4 |7 M
' ~- L3 j5 G: r& p2 M' o$ f郵件接收&閱讀原理:- P6 V1 r- ]% C! x6 g
郵件最終的投遞ip是由域名(比如yourdomain.com)裡面的mx記錄決定的。
- J8 W1 N5 J" J4 ]比如在namecheap裡面這樣設置後,@yourdomain.com的郵件將會由yourdomain.com的郵件服務器接收
3 d) k0 d4 |5 W1 o- [
% y7 a8 h8 e6 Q; l% f* B" z" T郵件發出後會以smtp協議進行投遞,發送和接受郵件的服務器都要安裝處理smtp協議的軟件,我們這裡就是exim。
8 }# j% m3 `) }& N# p3 W我們的exim收到別處來的郵件後,需要用lmtp協議把郵件存起來,這裡我們使用dovecot處理lmtp協議。9 L) v) g7 r# u* `# l' G; E
郵件存儲了,需要閱讀的時候,需要使用pop3或者imap協議,dovecot也會處理這兩個協議。 r4 H7 f* |8 ?4 ^2 `
郵件閱讀還需要客戶端,可以使用gmail或者outlook這些去和dovecot通訊下載郵件來讀。
+ N* H- S: E9 k- x) m) z
" V4 C+ W- W3 _, ?2 H8 B9 G安裝步驟:: ^5 z5 Z' R5 r
1. 去namecheap裡面設置mx,把@yourdomain.com設置到你的vps上面,如上面所附圖$ g1 I1 g$ I" }" f( P' Q8 t: Y
9 v2 U; p/ a$ g4 Q
2. 安裝exim 和dovecot- aptitude install exim dovecot-pop3d dovecot-lmtpd
複製代碼 3. 配置dovecot! b/ n2 G7 J6 ?; a
建立一個linux用戶專用存放郵件,這樣收到的郵件都將存到/home/vmail裡面:- groupadd vmail# Z( H3 T# I; j) X* o; P
- useradd vmail -r -g vmail -d /home/vmail -m -s /sbin/nologin -c "mail user"
複製代碼 - {7 p* ^0 R. X% Z
設置郵箱賬戶,運行:然後輸入用戶名,密碼組合如下格式,想輸入多少賬戶就輸入多少賬戶:0 G% w e6 X7 ]5 W2 Q3 n7 R9 ~+ n
配置dovecot本身,運行:- pico /etc/dovecot/dovecot.conf
複製代碼 刪除原來的內容,使用如下的內容,在原來的基礎上看一下差別修改一下也成:- protocols = pop3; e$ t9 k, g5 S( U; E( ^- {
5 k* @3 `% g; }: _/ I( a* Y- # It's nice to have separate log files for Dovecot. You could do this% p Z7 U9 E$ ?9 d4 `
- # by changing syslog configuration also, but this is easier.
m C0 K# l$ C8 u6 f' I! g - log_path = /var/log/dovecot.log- i4 [1 f7 Q. n R
- info_log_path = /var/log/dovecot-info.log9 b, f/ ] O' ]( e, F9 @
. R" u5 N; `5 y2 ^) o- # Disable SSL for now.0 H7 B$ n2 U: s0 _& f- V
- ssl = yes
/ s2 x M/ H! d9 L. q- k - ssl_cert = </etc/dovecot/dovecot.pem
# g9 ~+ l1 f2 x7 ~- [+ x - ssl_key = </etc/dovecot/private/dovecot.pem
$ g' T6 @! q6 u8 z
7 ?$ b# O3 Q9 j* o# w" j, h6 B- disable_plaintext_auth = no
! P. d% o5 ]. F$ D }
7 g. ]( ~: C- O- # We're using Maildir format
- `, m; m. K& i. {2 V: G$ F - mail_location = maildir:~/Maildir$ E1 W2 S1 v* U6 y
! w% ^, |: N3 M% ~' X* Y- # If you're using POP3, you'll need this:6 N5 o& e: V5 _. ~2 Y& e8 L
- pop3_uidl_format = %g
8 R- J7 l8 [( D1 z
/ v; w6 _5 ?9 k+ ^- # Authentication configuration:" w, v7 F0 C+ N* |4 P) L4 \, p
- auth_verbose = yes
2 _# U+ ^! o% ~ - auth_mechanisms = plain
; L& a3 }8 q* M/ p( L0 ]8 T - passdb {0 B( a4 q6 u8 x2 K* e# f
- driver = passwd-file
* }4 x$ F2 x, K) c2 j# k - args = /etc/dovecot/passwd* @ E$ n( d' C0 R8 }, h
- }
' k: g4 H! j0 s% n - userdb {9 m+ V( `: e. P: H+ `5 V# h
- driver = static
4 {+ k' V7 T" W% c h. Q - args = uid=vmail gid=vmail home=/home/vmail/%u# r) [5 I! f* i0 {0 F, M( Q9 E6 y/ q
- }0 |' ^& q, ^. \- \, N
0 [. A" K% F9 Z$ ^* u3 D- service lmtp {
7 s. F- z! B- z# f, c E, w% d& E - inet_listener lmtp { ~4 f# M- C; k7 a
- address = 127.0.0.1 ::1+ |2 r2 v; a! X& b1 {, F w
- port = 24; u* e4 F4 J# O$ S
- }3 Q. m- g# {2 i% o5 `& E
% l* u- H+ }* l/ V- unix_listener lmtp {
: k: r S; z. G' T - mode = 0666# @' q0 R2 M! b1 y% J, |; A3 T
- }
( n. I: n( |- m! K4 V) i - }
複製代碼
0 Z" n' e" ?+ M! t重啟服務:5 s) d( z) f9 K m* S
檢查一下dovecot是否已經在監聽端口:已經可以看到在監聽pop3,pop3s,還有lmtp的24號共3個端口了。
% k, _: u4 A& u2 i4 q7 q
$ W2 W0 f; R. r C& d- G' ]. {
! s% h" Q) ~( {( _: b% j% L
4. 配置exim:7 D: A: \, N' X, r: j
運行配置嚮導:- dpkg-reconfigure exim4-config
複製代碼 這一個嚮導步驟比較多:
# x- B' ~$ Y7 i0 E; R第一步要選internet site; mail is sent and received directly using SMTP
) @3 h+ f6 g% N( n5 T, n6 v, i然後遇到有textbox輸入的如果怕麻煩全部刪除原來內容,留空進下一步。( @3 p6 k! p% W5 W% _* ~
有一個問題:Keep number of DNS-queries minimal (Dial-on-Demand)? ,選默認No
2 c( U2 b: O/ j7 S( H% R) d還有一個問題:Split configuration into small files?選Yes2 v: S) G- N! U( y6 h
+ }* ^/ y9 X+ ^7 K# T配置exim進行lmtp方式投遞,運行:- pico /etc/exim4/conf.d/router/900_exim4-config_local_user
複製代碼 然後把文件內容替換為:- local_user:" ` \* O; G, n- y
- transport = dovecot_lmtp
- W2 N( ?. k) p7 T; h - domains = +local_domains, ]# r5 e+ r5 D u3 s- k+ Y
- driver = manualroute6 B+ p8 p: u, o& f, t3 t9 q
- route_list = "* 127.0.0.1 byname"" g" B" Q. C/ \ n7 O" X6 J
- self = send
6 J1 v! q) `/ L5 x2 a
複製代碼 ( A5 G6 y% d8 D+ i& Z' b
運行以下命令,會新建一個文件:- pico /etc/exim4/conf.d/transport/40_exim4-config_dovecot_lmtp
複製代碼 然後輸入以下內容:- dovecot_lmtp:
: g# A6 s* ?) i1 ?( L - driver = smtp
/ V2 V+ K+ l+ [$ t+ u4 b* a - protocol = lmtp8 _1 I7 j: H6 u, r( w: q
- port = 24
複製代碼
' c* T4 B5 i, u3 Q- J3 K重啟exim:檢查exim在公網監聽smtp端口:
2 c4 U. |9 l; c4 [
一定要是*:smtp,如果只有127.0.0.1:smtp或者根本沒有smtp端口,說明配置錯誤。需要去/var/log/exim4里面看log文件排錯,另外dovecot的log也在/var/log/dovecot.log3 B, d. K# _/ K7 X; k( K3 M
' o6 v$ V" N+ \6 h" P+ `/ i
我使用gmail pop3作為閱讀客戶端,所以沒有用imap,如果需要可以在安裝的時候執行,應該不需要額外的配置更改:- aptitude install dovecot-imapd
複製代碼 % q9 i4 z3 w* k2 [7 B( [
|