本帖最後由 hudba 於 2014-1-15 13:26 編輯 - T" `( ~" w- Q! l3 K% k F4 m
$ i' h$ ?0 v' x1 r9 D% h( X有一個自己的接收郵件服務器的好處:: Z# P; z! Y& z$ `$ E. Z/ `
- 主要是自由方便,
- 可以有自己的域名郵箱,
- 不求人,
- 想多少個名字就多少個名字5 N) G' u0 M0 n% G$ [
0 p# w" z: f8 ^
發郵件相對簡單,這裡主要介紹如何使用dovecot配置一個接受郵件的服務器。
/ D5 S9 R' R$ _2 e) g: \環境:
, d! O/ \3 ~0 ?# f服務器使用debian,如果不是debian,配置文件的路徑稍有差別,需要自己修改,但過程一樣。
' ^, M. K! o# S9 ` |9 S郵件處理smtp協議使用:exim
! o: m9 Z3 _1 c/ q! M+ t# w郵件處理imap,pop3,lmtp協議使用:dovecot' S5 j$ A* c' l2 i% c& H/ f, I5 T+ Z
8 _; T* d& I8 x/ l8 V郵件接收&閱讀原理:
~; Q; _6 l$ y% W7 F9 F郵件最終的投遞ip是由域名(比如yourdomain.com)裡面的mx記錄決定的。( k! F4 c( }- M
比如在namecheap裡面這樣設置後,@yourdomain.com的郵件將會由yourdomain.com的郵件服務器接收
" M! T5 ]3 j# o
# N% A6 X5 i0 [
郵件發出後會以smtp協議進行投遞,發送和接受郵件的服務器都要安裝處理smtp協議的軟件,我們這裡就是exim。# n2 d: E9 i H5 w' ]5 G7 M
我們的exim收到別處來的郵件後,需要用lmtp協議把郵件存起來,這裡我們使用dovecot處理lmtp協議。
% B7 U# z2 c1 w( | ~6 l4 u郵件存儲了,需要閱讀的時候,需要使用pop3或者imap協議,dovecot也會處理這兩個協議。' [5 k O+ Q' r( k; l6 o
郵件閱讀還需要客戶端,可以使用gmail或者outlook這些去和dovecot通訊下載郵件來讀。
, E0 A! ^1 {, s$ v! b% T% |$ H7 w" t. v9 H9 w5 G$ T4 W9 I1 T7 }& k2 ~
安裝步驟:
! b! D0 \7 s" A8 a3 |( C1. 去namecheap裡面設置mx,把@yourdomain.com設置到你的vps上面,如上面所附圖& |1 y# E9 P' O$ b1 R' q2 ]( Q
0 S. |1 q% |4 H; D
2. 安裝exim 和dovecot- aptitude install exim dovecot-pop3d dovecot-lmtpd
複製代碼 3. 配置dovecot
0 |. I$ H: x. i/ ?- E+ ?) B8 ~建立一個linux用戶專用存放郵件,這樣收到的郵件都將存到/home/vmail裡面:- groupadd vmail5 k6 U( {. H/ `+ f
- useradd vmail -r -g vmail -d /home/vmail -m -s /sbin/nologin -c "mail user"
複製代碼 * h; ^9 K: Z/ Y/ k+ q4 h7 E* r
設置郵箱賬戶,運行:然後輸入用戶名,密碼組合如下格式,想輸入多少賬戶就輸入多少賬戶:
; v- n, D% c+ z/ q! e3 ]$ S( G配置dovecot本身,運行:- pico /etc/dovecot/dovecot.conf
複製代碼 刪除原來的內容,使用如下的內容,在原來的基礎上看一下差別修改一下也成:- protocols = pop3: |8 L) `* G( p5 b
# z+ b* _( F/ v% _1 {4 g8 `- # It's nice to have separate log files for Dovecot. You could do this
( K1 o& l' V$ T- C' C3 H1 Q$ O - # by changing syslog configuration also, but this is easier.8 |9 z- P( Q! F, X* T9 d
- log_path = /var/log/dovecot.log
: ^% m6 D: I+ z* m" Y1 m$ Z - info_log_path = /var/log/dovecot-info.log+ [7 T R8 e" x. a) C
! \5 c, R# ]5 O$ g/ ?; e6 n! K- # Disable SSL for now.7 R( G* {1 R: G. G* t/ R; e( C/ V
- ssl = yes
! h) I, T3 i8 c. ]" S2 o9 E7 [ - ssl_cert = </etc/dovecot/dovecot.pem2 c" E' D9 _4 R5 v$ J$ |: u/ J
- ssl_key = </etc/dovecot/private/dovecot.pem
2 y1 `* u# B1 { `, C - 6 I0 W: s' Q9 Z, E
- disable_plaintext_auth = no
+ D/ O8 K6 i6 G' @% f% d
$ L% L% i2 V8 L+ E* }+ D: D# J; q- # We're using Maildir format* C' w) X5 e# M5 B
- mail_location = maildir:~/Maildir
- |0 M- x2 J6 ?. P; i - 6 b$ W7 \; e5 A7 \
- # If you're using POP3, you'll need this:
5 E# f; i( Y3 Y, v. A2 h - pop3_uidl_format = %g( q& {7 d, Y: i7 w- }
* H, ^$ F9 H1 K- # Authentication configuration:
- ?& E3 H5 s+ {$ Z - auth_verbose = yes
; g4 g4 [2 p, R M8 a, b - auth_mechanisms = plain
5 V, a' ~) C( Q' O( B& y - passdb {8 e3 i* E( `0 e0 ?
- driver = passwd-file' Y0 S" P; \: i: {% u
- args = /etc/dovecot/passwd
9 m; N& u* u$ Z8 `2 a; ]4 J5 t - }
4 A* a8 T8 M4 O - userdb {) ~) {# N% ]3 H9 S
- driver = static
* l) c* N3 Q; z6 S' s - args = uid=vmail gid=vmail home=/home/vmail/%u
! C6 z8 t1 g0 |8 ^( C+ D5 S - }$ T- Y1 e- O ~; O' E
" E. ^7 J, J# j. I+ p) `. D- service lmtp {# V$ R* y D% `" ~% `) H
- inet_listener lmtp {- o- \8 Z- r# U, M8 l+ f+ c
- address = 127.0.0.1 ::1
: m' R, \3 U, F - port = 244 V- q$ Z& z. t* Z* S- O( {
- }
; V$ s0 A, R% i( ~+ ] - 5 E( D! L1 T3 ~2 t
- unix_listener lmtp {, e+ }0 ^6 S% Y/ A, x. C
- mode = 0666
; V$ U0 A+ x5 y% C p2 Y - }5 g5 f$ n0 G7 _/ Q t
- }
複製代碼 : [9 D3 W: j# T/ i. }6 U6 e# M! _: w
重啟服務:
: `2 ^. h2 ^/ ?9 Z4 f! _$ h檢查一下dovecot是否已經在監聽端口:已經可以看到在監聽pop3,pop3s,還有lmtp的24號共3個端口了。! z* l# I7 j `8 q7 T
. K2 s3 \3 Z0 _7 Z& ^2 | j! c& ^* I" A( S% _
4. 配置exim:9 r2 |( Z' i. ?% c6 s# q
運行配置嚮導:- dpkg-reconfigure exim4-config
複製代碼 這一個嚮導步驟比較多:2 f$ T2 n7 ~6 c
第一步要選internet site; mail is sent and received directly using SMTP
6 w# D* F( n4 S! \4 h1 k3 y然後遇到有textbox輸入的如果怕麻煩全部刪除原來內容,留空進下一步。
+ N t: q4 o) y4 ~( P( p+ V5 {6 o有一個問題:Keep number of DNS-queries minimal (Dial-on-Demand)? ,選默認No; H0 L6 ~* P N7 i( @9 Z
還有一個問題:Split configuration into small files?選Yes
' G5 I3 n1 ], \. M0 z/ Q8 k. o9 U1 B- l
配置exim進行lmtp方式投遞,運行:- pico /etc/exim4/conf.d/router/900_exim4-config_local_user
複製代碼 然後把文件內容替換為:- local_user:2 H0 Z9 l+ q( D! r3 v
- transport = dovecot_lmtp( e, B9 \- X8 ]- ]6 s
- domains = +local_domains
/ u+ J1 @4 I8 ~4 b9 a# M - driver = manualroute
0 ]7 _0 a9 R7 a, o5 v0 o( h - route_list = "* 127.0.0.1 byname"3 J) z- w" q* D# _- L( b5 x
- self = send- l3 L( Y9 l' S7 W& M" R" A" \5 J1 L
複製代碼
# A4 n& x* y( g [! H4 o6 c運行以下命令,會新建一個文件:- pico /etc/exim4/conf.d/transport/40_exim4-config_dovecot_lmtp
複製代碼 然後輸入以下內容:- dovecot_lmtp:' ?3 l r& {& O# b) B, m1 ~
- driver = smtp; h+ X1 W- h8 Q, j
- protocol = lmtp' d3 P" L+ |8 X, }5 ~
- port = 24
複製代碼
& b6 \9 f$ M$ @重啟exim:檢查exim在公網監聽smtp端口:
$ f- Q* e5 i2 d e# h% X: F
一定要是*:smtp,如果只有127.0.0.1:smtp或者根本沒有smtp端口,說明配置錯誤。需要去/var/log/exim4里面看log文件排錯,另外dovecot的log也在/var/log/dovecot.log& O9 C2 \' u; E: u3 H1 P$ |
: B7 m9 m# w! H% L
我使用gmail pop3作為閱讀客戶端,所以沒有用imap,如果需要可以在安裝的時候執行,應該不需要額外的配置更改:- aptitude install dovecot-imapd
複製代碼
( m& ^4 b6 v# ?3 ~ |