在vps建立一个自己的接收邮件服务器

[复制链接]
查看: 688   回复: 1
发表于 2014-1-15 13:21:17 | 显示全部楼层 |阅读模式
本帖最后由 hudba 于 2014-1-15 13:26 编辑

有一个自己的接收邮件服务器的好处:
  • 主要是自由方便,
  • 可以有自己的域名邮箱,
  • 不求人,
  • 想多少个名字就多少个名字

发邮件相对简单,这里主要介绍如何使用dovecot配置一个接受邮件的服务器。
环境:
服务器使用debian,如果不是debian,配置文件的路径稍有差别,需要自己修改,但过程一样。
邮件处理smtp协议使用:exim
邮件处理imap,pop3,lmtp协议使用:dovecot

邮件接收&阅读原理:
邮件最终的投递ip是由域名(比如yourdomain.com)里面的mx记录决定的。
比如在namecheap里面这样设置后,@yourdomain.com的邮件将会由yourdomain.com的邮件服务器接收

邮件发出后会以smtp协议进行投递,发送和接受邮件的服务器都要安装处理smtp协议的软件,我们这里就是exim。
我们的exim收到别处来的邮件后,需要用lmtp协议把邮件存起来,这里我们使用dovecot处理lmtp协议。
邮件存储了,需要阅读的时候,需要使用pop3或者imap协议,dovecot也会处理这两个协议。
邮件阅读还需要客户端,可以使用gmail或者outlook这些去和dovecot通讯下载邮件来读。

安装步骤:
1. 去namecheap里面设置mx,把@yourdomain.com设置到你的vps上面,如上面所附图

2. 安装exim 和dovecot
  1. aptitude install exim dovecot-pop3d dovecot-lmtpd
复制代码
3. 配置dovecot
建立一个linux用户专用存放邮件,这样收到的邮件都将存到/home/vmail里面:
  1. groupadd vmail
  2. useradd vmail -r -g vmail -d /home/vmail -m -s /sbin/nologin -c "mail user"
复制代码

设置邮箱账户
,运行:
  1. pico /etc/dovecot/passwd
复制代码
然后输入用户名,密码组合如下格式,想输入多少账户就输入多少账户:
  1. info@yourdomain.com:{PLAIN}mypassword
  2. webmaster@yourdomain.com:{PLAIN}anotherpassword
复制代码

配置dovecot本身
,运行:
  1. pico /etc/dovecot/dovecot.conf
复制代码
删除原来的内容,使用如下的内容,在原来的基础上看一下差别修改一下也成:
  1. protocols = pop3

  2. # It's nice to have separate log files for Dovecot. You could do this
  3. # by changing syslog configuration also, but this is easier.
  4. log_path = /var/log/dovecot.log
  5. info_log_path = /var/log/dovecot-info.log

  6. # Disable SSL for now.
  7. ssl = yes
  8. ssl_cert = </etc/dovecot/dovecot.pem
  9. ssl_key = </etc/dovecot/private/dovecot.pem

  10. disable_plaintext_auth = no

  11. # We're using Maildir format
  12. mail_location = maildir:~/Maildir

  13. # If you're using POP3, you'll need this:
  14. pop3_uidl_format = %g

  15. # Authentication configuration:
  16. auth_verbose = yes
  17. auth_mechanisms = plain
  18. passdb {
  19.   driver = passwd-file
  20.   args = /etc/dovecot/passwd
  21. }
  22. userdb {
  23.   driver = static
  24.   args = uid=vmail gid=vmail home=/home/vmail/%u
  25. }

  26. service lmtp {
  27.   inet_listener lmtp {
  28.     address = 127.0.0.1 ::1
  29.     port = 24
  30.   }

  31.   unix_listener lmtp {
  32.     mode = 0666
  33.   }
  34. }
复制代码

重启服务
:
  1. service dovecot restart
复制代码

检查一下
dovecot是否已经在监听端口:
  1. lsof -ni
复制代码
已经可以看到在监听pop3,pop3s,还有lmtp的24号共3个端口了。


4. 配置exim:
运行配置向导:
  1. dpkg-reconfigure exim4-config
复制代码
这一个向导步骤比较多:
第一步要选internet site; mail is sent and received directly using SMTP
然后遇到有textbox输入的如果怕麻烦全部删除原来内容,留空进下一步。
有一个问题:Keep number of DNS-queries minimal (Dial-on-Demand)? ,选默认No
还有一个问题:Split configuration into small files?选Yes

配置exim进行lmtp方式投递,运行:
  1. pico /etc/exim4/conf.d/router/900_exim4-config_local_user
复制代码
然后把文件内容替换为:
  1. local_user:
  2.         transport = dovecot_lmtp
  3.         domains = +local_domains
  4.         driver = manualroute
  5.         route_list = "* 127.0.0.1 byname"
  6.         self = send
复制代码

运行以下命令,会新建一个文件:
  1. pico /etc/exim4/conf.d/transport/40_exim4-config_dovecot_lmtp
复制代码
然后输入以下内容:
  1. dovecot_lmtp:
  2.         driver = smtp
  3.         protocol = lmtp
  4.         port = 24
复制代码

重启exim:
  1. service exim4 restart
复制代码
检查exim在公网监听smtp端口:
  1. lsof -ni
复制代码

一定要是*:smtp,如果只有127.0.0.1:smtp或者根本没有smtp端口,说明配置错误。需要去/var/log/exim4里面看log文件排错,另外dovecot的log也在/var/log/dovecot.log

我使用gmail pop3作为阅读客户端,所以没有用imap,如果需要可以在安装的时候执行,应该不需要额外的配置更改:
  1. aptitude install dovecot-imapd
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 2T币 +6 收起 理由
冷夜追风 + 5 好复杂啊,楼主技术弟~
bethlehem + 1 鼓勵

查看全部评分

发表于 2014-1-16 07:43:01 | 显示全部楼层
干货啊 以后尝试着搭建一下         

点评

可以自己处理邮件还是不错的,有精力的可以试一下。;)  发表于 2014-1-16 09:29
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则