Postfix 和Dovecot功能确实非常强大,支持各种认证方式, 配置非常灵活, 就由于太过于灵活, 反而安装配置的过程中,easy有各种各样的陷阱,碰到问题了。 日志是最好的解决的方法了。    我们假设你申请的域名是    example.com  。

在域名服务提供商那里设置域名解析, 我的  example.com 设置了3个域名解析:

第一个是 :A记录,  RR值为 @ ,    指向 server的IP地址

第二个是:MX记录。 RR值为@。 指向 example.com

第三个是:A记录,RR值为 www, 指向server的IP地址

配置完成后,   ping     www.example.com   假设能提示出你的server的IP地址, 证明 www的配置已经生效。

下来还要检查 MX 记录是否生效, 要用nslookup检查一下是否MX记录正确。

在windows系统的命令行控制体输入 : nslookup    -qt=mx    example.com     回车后,

能显示你的域名    example.com   , 就代表你的 MX记录配置正确。

这里有个关键须要注意: 我们一般都是自己主动获取IP地址和自己主动获取DNS, 这自己主动的DNS一般就是路由器的IP地址。 这个时候使用nslookup是得不到正确的MX记录的 。

要验证MX记录, 还得设置正确的DNS, 你比方说中国电信的DNS是 : 202.96.209.133,我就是设置了这个DNS后,才验证MX记录成功的。

假设MX记录配置不对, 那用QQ邮箱发邮件, 你就会收到个退信, 退信原因的内容例如以下 :

收件人(zhang@example.com)所属域名不存在。邮件无法送达。
Name service error for name=example.com type=MX: Host found but no data record of requested type

域名解析搞定了, 就能够安装配置  postfix 和  dovecot 了。

我没有下载源代码进行安装,直接用yum进行的。

yum    install    postfix

yum    install    dovecot

yum    install     cyrus-sals

安装完成后, 须要配置的东西事实上不多, 就两个配置文件须要改动。

第一个是 :postfix 的配置文件    /etc/postifx/main.cf 。  须要改动的内容例如以下所看到的,其它的用默认就可以。

myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 0.0.0.0/0
home_mailbox = Maildir/
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_sender_login_mismatch, reject_authenticated_sender_login_mismatch, reject_unauthenticated_sender_login_mismatch
smtpd_sasl_auth_enable = yes
smtpd_sender_login_maps = hash:/etc/postfix/sender_login_maps

第二个是:dovecot的配置文件   /etc/dovecot/dovecot.conf,须要改动的内容例如以下所看到的,其它的默认就可以。

protocols = imap pop3 lmtp imaps pop3s
ssl_disable = no
mail_location = Maildir:~/Maildir
disable_plaintext_auth = no

dovecot.conf 配置好以后。假设直接启动    service   dovecot   start。   会提示警告 :

Aug 14 17:55:54 master: Warning: Killed with signal 15 (by pid=12829 uid=0 code=kill)
Aug 14 17:55:55 config: Warning: NOTE: You can get a new clean config file with: doveconf -n > dovecot-new.conf
Aug 14 17:55:55 config: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:81: login_user has been replaced by service { user }
Aug 14 17:55:55 config: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:88: add auth_ prefix to all settings inside auth {} and remove the auth {} section completely

这时我们须要在    /etc/dovecot/文件夹以下运行  :

doveconf -n > dovecot-new.conf

该命令会把   dovecot.conf  转化为标准格式的配置文件 。 我们用新生成的文件  dovecot-new.conf 替换掉 dovecont.conf 就可以。

由于当Postfix要使用SMTP认证时,会读取/usr/lib/sasl2/smtpd.conf文件里的内容,以确定所採用的认证方式,因此假设要使用saslauthd这个守护进程来进行password认证。就必须确保/usr/lib/sasl2/smtpd.conf文件里的内容为:
pwcheck_method: saslauthd

在配置的过程中。 另一些细节须要注意 :

那就是设置 默认的 MTA,   卸载掉  sendmail , 把MTA设置为 postfix,  另外是设置开机自己主动启动:

chkconfig   saslauthd on

chkconfig   postfix       on

chkconfig    dovecot   on

然后用 useradd   命令加入一个用户   zhang , password设置为   123456

启动服务:

service    postfix    restart

service    dovecot    restart

service     saslauthd    restart

下来配置  outlook,   填写 电子邮件地址为 : zhang@example.com

账号类型选择  POP3,   接收邮件server为    example.com,   发送邮件server也为  example.com

然后username为     zhang,   password为   123456

不出意外的话,  应该能够正常收发邮件了。

新邮件会保存在server的    /home/zhang/Maildir/new    这个文件夹里。

我这个配置比較简单, 是用的server本身的password验证机制。

postfix 非常强大, 能够支持多种认证方式和其它的加密方式。

本来想用   postfixadmin 进行web管理的,  可是那个配置起来就要更复杂一些了,  通过web的方式加入用户后。 须要在  home 文件夹创建相应的username的文件夹来保存邮件。 有相关的脚本须要运行。另外认证模式得改动为mysql认证, 配置 略微复杂, 等下一篇文章在写 postfixadmin 相关的东西吧。

附:

postcat -q 659D0C3636   查看邮件内容

postsuper -d ALL                  清除邮件缓存

以下是一篇非常好的文章。 讲述反垃圾邮件机制的,值得參考 :

http://jsl99.blog.163.com/blog/static/31083799201292715730463/

CentOS 64位下安装Postfix+Dovecot 配置邮件server笔记的更多相关文章

  1. centos 64位 下hadoop-2.7.2 下编译

    centos 64位 下hadoop-2.7.2 下编译 由于机器安装的是centos 6.7 64位 系统  从hadoop中下载是32位  hadoop 依赖的的库是libhadoop.so 是3 ...

  2. Windows10 64位下安装TensorFlow谷歌人工智能系统已官方原生支持

    Windows10 64位下安装TensorFlow谷歌人工智能系统已官方原生支持 GitHub - tensorflow/tensorflow: Computation using data flo ...

  3. 求助下 Ubuntu 15.10(64 位)下安装 pyspider 下的问题 - V2EX

    https://www.v2ex.com/t/279405 求助下 Ubuntu 15.10(64 位)下安装 pyspider 下的问题 - V2EX pip 更新到最新 sudo apt inst ...

  4. CentOS 6.5 64位下安装Redis3.0.2的具体流程

    系统环境:CentOS 6.5 64位 安装方式:编译安装 防火墙:开启 Redis版本:Redis 3.0.2 一.环境准备 1.安装 gcc gcc-c++ [root@iZ94ebgv853Z ...

  5. Windows7 sp1 64位下安装配置eclipse+jdk+CDT+minGW

    需要的工具: jdk-7u11-windows-x64.exe  eclipse-SDK-4.2.2-win32-x86_64.zip cdt-master-8.1.2.zip mingw-get-i ...

  6. CentOS 6.5 64位下安装MySQL 5.7.11

    昨天花了一下午在CentOS6.5 上安装了MySQL,版本为5.7.11,下面介绍一下我安装时候出现的问题 以及解决方法,供大家参考. 1/清除残留 rpm -qa | grep mysql // ...

  7. CentOS6.3(64位)下安装Oracle11gR2(64)服务器

    安装环境 Linux服务器:Centos6.3 64位 Oracle服务器:Oracle11gR2 64位 系统要求 1.Linux安装Oracle系统要求 系统要求 说明 内存 必须高于1G的物理内 ...

  8. Windows 7/8 64位下安装64位Apache 2.4.7

    准备软件: VC11 运行库 64位的apache版本 传送门:http://www.apachelounge.com/download/ 安装步骤: 修改httpd.conf配置文件 37行: Se ...

  9. Window 64位下的客户机配置PLSQL链接远程Oracle

    此文章记录的是艰难探索. 完成如下工作: 服务器A为Windows Serve 2016:安装Oracle. 客户机B为Win7 x64位,安装PLSQLDevelop,链接A上的Oracle. 首先 ...

随机推荐

  1. Mahout0.6-VectorDumper bug修复

    VectorDumper类的功能是从SequenceFile中按照键值对的方式读取信息并将其转化为文本形式,具体使用见第五部分1.1.2节第3)条.如果不对源码进行修改使用时存在两个bug,现在只对b ...

  2. 4、Android Activity的生命周期 Activity的生命周期

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveXV4aWt1b18x/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...

  3. 算法笔记_195:历届试题 错误票据(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 某涉密单位下发了某种票据,并要在年终全部收回. 每张票据有唯一的ID号.全年所有票据的ID号是连续的,但ID的开始数码是随机选定的. 因为 ...

  4. PowerMock介绍

    一.为什么要使用Mock工具 在做单元测试的时候,我们会发现我们要测试的方法会引用很多外部依赖的对象,比如:(发送邮件,网络通讯,远程服务, 文件系统等等). 而我们没法控制这些外部依赖的对象,为了解 ...

  5. sql server 根据经纬度计算两点间距离

    DECLARE @BJ GEOGRAPHY DECLARE @XT GEOGRAPHY SELECT @BJ= geography::Point('39.92889', '116.38833', 43 ...

  6. git查看各个branch之间的关系图

    两种方法: 一.  使用Git log命令 git log --graph --decorate --oneline --simplify-by-decoration --all 说明: --deco ...

  7. Guava学习之Preconditions

    在编写程序的时候,很多时候都需要检查输入的参数是否符合我们的需要,比如人的年龄需要大于0,名字不能为空:如果不符合这两个要求,我们将认为这个对象是不合法的,这时候我们需要编写判断这些参数是否合法的函数 ...

  8. java 实现文本格式转换

    代码如下,不太规范,仅作学习用 import java.io.*; public class CharSetTest { public static void main(String[] args) ...

  9. echo “新密码”|passwd --stdin 用户名

    --stdin This option is used to indicate that passwd should read the new password from standard input ...

  10. 微信小程序开发思路

    小程序还没有完全开放,不能真实体验,但通过文档和开发工具,可以了解到他的开发思路 下面就介绍下小程序的开发方式,希望能帮助有兴趣的朋友对整体思路有个快速了解 整体结构 默认示例项目的目录结构 从后缀名 ...