CentOS 64位下安装Postfix+Dovecot 配置邮件server笔记
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笔记的更多相关文章
- centos 64位 下hadoop-2.7.2 下编译
		
centos 64位 下hadoop-2.7.2 下编译 由于机器安装的是centos 6.7 64位 系统 从hadoop中下载是32位 hadoop 依赖的的库是libhadoop.so 是3 ...
 - Windows10 64位下安装TensorFlow谷歌人工智能系统已官方原生支持
		
Windows10 64位下安装TensorFlow谷歌人工智能系统已官方原生支持 GitHub - tensorflow/tensorflow: Computation using data flo ...
 - 求助下 Ubuntu 15.10(64 位)下安装 pyspider 下的问题 - V2EX
		
https://www.v2ex.com/t/279405 求助下 Ubuntu 15.10(64 位)下安装 pyspider 下的问题 - V2EX pip 更新到最新 sudo apt inst ...
 - CentOS 6.5 64位下安装Redis3.0.2的具体流程
		
系统环境:CentOS 6.5 64位 安装方式:编译安装 防火墙:开启 Redis版本:Redis 3.0.2 一.环境准备 1.安装 gcc gcc-c++ [root@iZ94ebgv853Z ...
 - 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 ...
 - CentOS 6.5 64位下安装MySQL 5.7.11
		
昨天花了一下午在CentOS6.5 上安装了MySQL,版本为5.7.11,下面介绍一下我安装时候出现的问题 以及解决方法,供大家参考. 1/清除残留 rpm -qa | grep mysql // ...
 - CentOS6.3(64位)下安装Oracle11gR2(64)服务器
		
安装环境 Linux服务器:Centos6.3 64位 Oracle服务器:Oracle11gR2 64位 系统要求 1.Linux安装Oracle系统要求 系统要求 说明 内存 必须高于1G的物理内 ...
 - Windows 7/8 64位下安装64位Apache 2.4.7
		
准备软件: VC11 运行库 64位的apache版本 传送门:http://www.apachelounge.com/download/ 安装步骤: 修改httpd.conf配置文件 37行: Se ...
 - Window 64位下的客户机配置PLSQL链接远程Oracle
		
此文章记录的是艰难探索. 完成如下工作: 服务器A为Windows Serve 2016:安装Oracle. 客户机B为Win7 x64位,安装PLSQLDevelop,链接A上的Oracle. 首先 ...
 
随机推荐
- 《微赢微信公众平台系统5月14最新破解高级运营版+水果机+邀请函+微汽车+微食品+用户CRM》
			
<微赢微信公众平台系统5月14最新破解高级运营版+水果机+邀请函+微汽车+微食品+用户CRM> 此版本号眼下是淘宝卖600RMB的,其他VIP源代码论坛也都还没有公布.咱们这里全然免费分享 ...
 - Redis学习(5)-Jedis(Java操作redis数据库技术)
			
Java连接redis 一,导入jar包 Redis有什么命令,Jedis就有什么方法 设置防火墙 在Linux上面运行如下代码: 单实例:Jedis实例: package com.jedis.dem ...
 - 用openssl生成SSL使用的私钥和证书,并自己做CA签名(转)
			
本 文记叙的是一次基于SSL的socket通讯程序开发中,有关证书,签名,身份验证相关的步骤. 我们的场景下,socket服务端是java语言编写的,客户端是c语言.使用了一个叫做matrixssl的 ...
 - bzoj1296【SCOI2009】粉刷匠
			
1296: [SCOI2009]粉刷匠 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1479 Solved: 837 [id=1296" ...
 - maven内部运行原理解析(一)
			
来源于:http://www.jianshu.com/p/0fb5e3fb704d maven至今还是Java编程语言构建的事实标准,大部分项目还在使用maven来进行构建,因此了解maven内部运行 ...
 - PHP读取大文件的几种方法
			
场景:PHP读取超大文件,例如1G的日志文件,我这里使用的是400M的access.log文件 1.使用file直接读取 <?php $starttime=microtime_float(); ...
 - AjaxControlToolkit的使用
			
摘自:http://www.cnblogs.com/zm235/archive/2008/05/09/1189558.html 暂时的做法: 把AjaxControlToolkit.dll复制到项目的 ...
 - caffe与MATLAB连接踩的坑
			
刚来公司用的服务器,分配给自己账号,安装了caffe,配好了Makefile.config中的MATLAB dir. 之后问题来了 解决方法: 在Makefile里面,大约第410行那一句话CXXFL ...
 - Ant build xml中的各种变量解释
			
Ant build.xml中的各种变量 Ant环境变量分为四种: 1. build.properties文件中定义的变量 2. build.xml文件中定义的变量, 3. ...
 - iOS “[App] if we're in the real pre-commit handler we can't actually add any new fences due
			
最近运行APP,发现了这个问题,本着宁可错看,不可放过的原则,上stackoverFlow学习了一下: 链接:http://stackoverflow.com/questions/38458170/i ...