[ref: http://blog.51yip.com/server/1382.html]

[http://blog.chinaunix.net/uid-174325-id-1744019.html]

[http://mba.shengwushibie.com/itbook/BookChapter.asp?id=4959]

DNS服务器服务器自己可以不用搭,用第三方的就可以了。访问大也没有什么问题,我现在做游戏这一块,游戏要推广的,推广的时候一天的独立IP就可以达到700W左右。我用了dnspod的企业版,一年600块钱不到。邮件服务器,最好还是自己搭,用别人的邮件的服务器,会受到限制的。发到多少封就不给发了,这就挺郁闷的了。下面简单介绍一下在centos6 64位机器上搭建postfix邮件服务器。

一,安装postfix,cyrus-sasl,cyrus-imapd

如果yum提示找不到软件包,请换一下源,请参考centos 6推荐使用epel源

  1. [root@localhost ~]# yum install postfix
  2. [root@localhost ~]# yum install cyrus*

二,删除了sendmail

  1. [root@localhost ~]# rpm -e sendmail
  2. 或者
  3. [root@localhost ~]# yum remove sendmail

三,更改默认邮件传输代理(MTA)

  1. [root@localhost sasl2]# alternatives --config mta
  2. 共有 1 个程序提供“mta”。
  3. 选择    命令
  4. -----------------------------------------------
  5. *+ 1           /usr/sbin/sendmail.postfix
  6. 按 Enter 来保存当前选择[+],或键入选择号码:1

上面的只有一个postfix,sendmail已经被我删了。可以通过下面命令来查看。

  1. [root@localhost ~]# alternatives --display mta

四,postfix,cyrus-sasl,cyrus-imapd相关配置

1,postfix主配置文件main.cf

  1. [root@localhost postfix]# vim /etc/postfix/main.cf
  2. myhostname = localhost  //76行,将等号后面的部分改写为本机主机名
  3. mydomain = 51yip.com   //82行,设置域名
  4. myorigin = $mydomain   //97行,把$myhostname改为$mydomain
  5. inet_interfaces = all  //112行,把后面的localhost改成all
  6. mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain //163行,把前面的注释拿掉,并加一下$mydomain
  7. mynetworks = 192.168.0.0/24, 127.0.0.0/8  //263行,设置内网和本地IP
  8. local_recipient_maps =  //209行,把前面的注释拿掉。
  9. smtpd_banner = $myhostname ESMTP unknow //568行,把前面的注释拿掉,然后把$mail_name ($mail_version)改成unknow
  10. //在main.cf文件的底部加上以下内容
  11. smtpd_sasl_auth_enable = yes     //使用SMTP认证
  12. broken_sasl_auth_clients = yes   //让不支持RFC2554的smtpclient也可以跟postfix做交互。
  13. smtpd_sasl_local_domain = $myhostname  // 指定SMTP认证的本地域名
  14. smtpd_sasl_security_options = noanonymous //取消匿名登陆方式
  15. smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设定邮件中有关收件人部分的限制
  16. smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设置允许范围
  17. message_size_limit = 15728640     //邮件大小
  18. mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp   //设置连接cyrus-imapd的路径

如果不加local_recipient_maps这个配置,收邮件收不到,下面是qq的退信。

收件人邮件地址(tank@51yip.com)不存在,邮件无法送达。host mail.51yip.com[122.225.***.***] said: 550 5.1.1: Recipient address rejected: User unknown in local recipient table (in reply to RCPT TO command)

2,cyrus-sasl配置

  1. [root@localhost postfix]# vim /etc/sasl2/smtpd.conf  //在文件尾部加上以下内容
  2. log_level: 3     //记录log的模式
  3. saslauthd_path:/var/run/saslauthd/mux     //设置一下smtp寻找cyrus-sasl的路径

在这里要提一下的32位的机器和64位的机器smtpd.conf的路径是不一样的。

  1. //这是centos 5.5 32位机器上smtpd的配置文件
  2. [root@linux sasl2]# ls |grep conf
  3. Sendmail.conf
  4. smtpd.conf
  5. [root@linux sasl2]# pwd
  6. /usr/lib/sasl2
  7. //这是centos 6.0 64位机器上smtpd的配置文件,其他地方没有smtpd的配置文件
  8. [root@localhost postfix]# ls /etc/sasl2/ |grep smtpd
  9. smtpd.conf

网上有不少关于postfix安装文章,配置的时候并没有明确提出是32位机器,还是64位机器。所以在这里标明一下。

3,配置cyrus-imapd

cyrus-imapd的主要配置文件有下面三个

/etc/sysconfig/cyrus-imapd

/etc/cyrus.conf

/etc/imapd.conf

这里是默认的配置,也就是说上面三个文件我是没有动过的。在这里提醒一下imapd.conf在这个文件里面,你可以设置管理账号

,设置邮件存放目录,设置密码连接方式等。

五,启动postfix,cyrus-sasl,cyrus-imapd

启动cyrus-imapd服务,就可以同时提供pop和imap服务,如果你已安装了dovecot服务就可以删除掉,cyrus-imapd和dovecot二者选其一就行了,二都可以提供pop和imap服务,不过cyrus-imapd可以为每个用户创建一个信息,而且信箱具有层次结构,比较好管理。建议用cyrus-imapd。

  1. [root@linux sasl2]# /etc/init.d/postfix start
  2. [root@linux sasl2]# /etc/init.d/saslauthd start
  3. [root@linux sasl2]# /etc/init.d/cyrus-imapd start
  4. 查看一下进程,
  5. //smtp监听是25端口
  6. [root@linux u]# netstat -tpnl |grep smtpd
  7. tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      6319/smtpd
  8. //110(POP3)和143(IMAP)端口,下面都已经有了
  9. [root@linux u]# netstat -tpnl |grep cyrus
  10. tcp        0      0 0.0.0.0:993                 0.0.0.0:*                   LISTEN      23593/cyrus-master
  11. tcp        0      0 0.0.0.0:995                 0.0.0.0:*                   LISTEN      23593/cyrus-master
  12. tcp        0      0 0.0.0.0:110                 0.0.0.0:*                   LISTEN      23593/cyrus-master
  13. tcp        0      0 0.0.0.0:2000                0.0.0.0:*                   LISTEN      23593/cyrus-master
  14. tcp        0      0 :::993                      :::*                        LISTEN      23593/cyrus-master
  15. tcp        0      0 :::995                      :::*                        LISTEN      23593/cyrus-master
  16. tcp        0      0 :::110                      :::*                        LISTEN      23593/cyrus-master
  17. tcp        0      0 :::143                      :::*                        LISTEN      23593/cyrus-master
  18. tcp        0      0 :::2000                     :::*                        LISTEN      23593/cyrus-master
  19. 启动是没有问题的。

六,测试cyrus-sasl

  1. [root@linux t]# passwd cyrus  //设置cyrus的密码
  2. [root@linux sasl2]# testsaslauthd -u cyrus -p '******'   //系统用户和密码
  3. 0: OK "Success."

如果显示是上面的内容说是smtp是没有什么问题

七,cyrus-imapd生产邮件管理员账号,并添加测试账号

安装完cyrus-imapd后会产生一个管理账号是cyrus,所属用户组是mail

  1. [root@linux sasl2]# id cyrus    //imapd.conf里面默认的管理员账号就是cyrus
  2. uid=76(cyrus) gid=12(mail) groups=12(mail),76(saslauth)

在认证admin账号时,我发现32位系统和64位系统有一点不同,二种系统我都配置过,配置都是一样的,
但是出现的结果不一样,看下图

32位机器cyrus管理员用户认证

64位机器cyrus管理员用户认证

从上图可以看出,32位的系统是不用加上--auth plain,64位的要,如果不加的话,根本进不去。

进去后,我们来添加一下测试账号

  1. [root@linux sasl2]# cyradm -u cyrus localhost
  2. IMAP Password:
  3. localhost> cm tank
  4. localhost> lm
  5. tank (\HasNoChildren)
  6. localhost> quit

这样我们可以在/var/spool/imap中看到,生成的目录,32位机器和64位机器生成的目录是不一样的

  1. //这是64位系统生成的目录
  2. [root@localhost u]# ls
  3. user^tank
  4. [root@localhost u]# pwd
  5. /var/spool/imap/u
  6. //这是32位系统生成的目录
  7. [root@linux t]# ls
  8. tank
  9. [root@linux t]# pwd
  10. /var/spool/imap/t

八,测试收发邮件

测试前添加一下DNS,
1,mail.51yip.com A 默认 122.225.***.***
2,mail.51yip.com A 联通 60.12.***.***
3,@ MX 默认 mail.51yip.com
第1和第2,是添加二条A记录,第三行,设置了一下MX记录,这个千万不要忘了,不然你的域名是不通的。

方法有很多,我们可以利用telnet来测试,不过用telnet来测试收发邮件比较麻烦,用linux自带的
mail命令就方便多了

  1. [root@localhost u]# mail -s '看一下' 95219454@qq.com  < /etc/imapd.conf

以前有朋友问我,他配置的邮件服务器,发出去的邮件都在垃圾箱里面,我配过几次都没有发现这种情况看下图

发邮件已成功

从QQ发的邮件又成功

我们还可以通过maillog日志来查看邮件是否收发成功,看下图

日志查看,收发邮件

到这儿,简单的邮件服务器就搭好了。

postfix 安装配置详解的更多相关文章

  1. Eclipse IDE for C/C++ Developers安装配置详解

    Eclipse IDE for C/C++ Developers安装配置详解(转) 转自:http://hi.baidu.com/ltb6w/item/986532efd712460f570f1ddc ...

  2. Cloudera CDH 、Impala本地通过Parcel安装配置详解及什么是Parcel

    本文引用自:Cloudera CDH .Impala本地通过Parcel安装配置详解及什么是Parcelhttp://www.aboutyun.com/forum.php?mod=viewthread ...

  3. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

  4. ubuntu14.04 server ftp 服务安装配置详解

    ubuntu14.04 server ftp 服务安装配置详解 cheungmine 2016-01-27 http://wiki.ubuntu.com.cn/Vsftpd 0 安装好vsftpd服务 ...

  5. JDK10安装配置详解

    JDK10安装配置详解 1. 下载jdk10 1.1 官网下载jdk7的软件包:        地址:http://www.oracle.com/technetwork/java/javase/dow ...

  6. (转)python中调用R语言通过rpy2 进行交互安装配置详解

    python中调用R语言通过rpy2 进行交互安装配置详解(R_USER.R_HOME配置) 2018年11月08日 10:00:11 luqin_ 阅读数:753   python中调用R语言通过r ...

  7. (转)使用LVS实现负载均衡原理及安装配置详解

    使用LVS实现负载均衡原理及安装配置详解 原文:https://www.cnblogs.com/liwei0526vip/p/6370103.html

  8. redis cluster 集群 安装 配置 详解

    redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...

  9. 使用LVS实现负载均衡原理及安装配置详解

    负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学 ...

随机推荐

  1. 深入浅出K-Means算法

    在数据挖掘中,K-Means算法是一种cluster analysis的算法,其主要是来计算数据聚集的算法,主要通过不断地取离种子点最近均值的算法. 问题 K-Means算法主要解决的问题如下图所示. ...

  2. (转)oracle的split函数

    本文转载自:http://www.cnblogs.com/linbaoji/archive/2009/09/17/1568252.html PL/SQL 中没有split函数,需要自己写. 代码: c ...

  3. (转)Oracle执行字符串

    declare v_out ); begin execute immediate 'select p_guid from c_itcomp where rownum = 1 ' into v_out; ...

  4. 分布式缓存系统 Memcached CAS协议

    Memcached在1.2.4版本后新增了CAS(Check and Set)协议,主要用于并发控制:memcached中同一个item同时被多个线程(多个客户端)更改的并发问题.CAS协议最本质的东 ...

  5. 1059 Prime Factors

    题意: 给出一个int型正整数N,要求把N分解成若干个质因子,如N=97532468,则把N分解成:97532468=2^2*11*17*101*1291.质因子按增序输出,如果某个质因子的幂是1,则 ...

  6. 严谨的程序案例Api

    文档 功能 同步推荐关系 接口方法 syncRelation 参数描述 OriginalUsername 查询的用户用户名 RecommandUsername 推荐人用户名 返回值 status 1成 ...

  7. Oracle 常见hint

    Hints 应该慎用,收集相关表的统计信息,根据执行计划,来改变查询方式 只能在SELECT, UPDATE, INSERT, MERGE, or DELETE 关键字后面,只有insert可以用2个 ...

  8. JS判断IE,FF,Opera,Safari等浏览器类型

    第一种,只区分浏览器,不考虑版本 function myBrowser(){ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var ...

  9. Mybatis系列(四)映射文件

    转自:https://blog.csdn.net/chris_mao/article/details/48811507 Mybatis的真正强大,在于她对SQL的映射,这也是她吸引人的地方.实现相同的 ...

  10. [原创]20行ruby代码实现依赖注入框架

    我需要依赖注入 业余时间开发的娱乐项目 (为了练习使用ruby语言) 遵循SRP原则,业务逻辑拆分由各个service类型提供,假设存在如下几个类型 GameService 封装主要游戏业务逻辑 Us ...