zoukankan      html  css  js  c++  java
  • 搭建邮件服务器

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
    内部邀请码:C8E245J (不写邀请码,没有现金送)
    国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    一、前期准备

    1、域名配置

    在域名上配置 MX 记录,在域名中添加

    类型 主机 指向
    A @ xxx.xxx.xxx.xx
    A www @
    MX mail @
    MX   xxx.xxx.xxx.xx

    2、网络配置(开通必要的端口和防火墙)

    2.1 邮件服务所需要的必要的端口

    协议 常规端口 SSL加强端口
    SMTP 25  
    POP 110  
    IMAP 143  
         

    2.2 部署邮件服务器的端口必须具备至少一个 公网ip,并和域名绑定好

    2.3 开通服务器端的 iptables 端口

     1 # SMTP
     2 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
     3 # POP
     4 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
     5 # POP3S
     6 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT
     7 # IMAP
     8 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
     9 # IMAPS
    10 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT

    3、

    二、安装/配置 postfix

    postfix MYSQL 需要如下库的支持,并假设各库安装路径如下: 

    1、mysql client: 安装目录 /usr/local/lib/mysql/ (libmysqlclient.so 库函数的位置), 标头文件位于 /usr/local/includes/mysql/
    2、zlib:              安装目录 /usr/lib/

    3、berkely db: 安装

    cd ./build_unix 
    ../dist/configure

    安装完成后,默认将 berkely db 安装到 /usr/local/berkelydb 目录下 

    因安装 postfix 是需要 berkely db 的支持,需要将如下两个文件链接到 /usr/include  /usr/lib 目录下

    ln -s /usr/local/berkelydb5.3.2/include/db.h /usr/include/db.h
    ln -s /usr/local/berkelydb5.3.2/lib/libdb.so /usr/lib/libdb.so

    4、编译 postfix 支持 mysql (在系统中必须存在 mysql.h )

    make -f Makefile.init makefiles 
        'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' 
        'AUXLIBS=-L/usr/local/mysql/lib -lmysqlclient -lz -lm'
    

      

    编辑postfix/main.cf

     sudo vim /etc/postfix/main.cf

    在 main.cf 找到这些内容,并修改,改为你在 /etc/hosts中的域名

     

     myhostname = mail.backup.org
     mydomain = backup.org
     myorigin=$mydomain
     inet_interfaces = all
     mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
     relay_domains = $mydestination
     mynetworks = 192.168.0.0/16, 127.0.0.0/8
     home_mailbox = Maildir/

     # 不显示服务器信息
     smtpd_banner = $myhostname ESMTP unknown
     
     # 在main.cf最后加下面的,用SMTP认证
     smtpd_sasl_auth_enable = yes

     # 指定SMTP认证的本地域名(主机名)
     smtpd_sasl_local_domain = $myhostname

    # 不允许匿名的方式认证
     smtpd_sasl_security_options = noanonymous
     smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
     smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

       # 注:实际上这里因为没配置sasl的应用,所以这里的sasl实际测试时,是enable = no的

       # 规定一下邮件大小

     # 规定邮件最大尺寸为150MB
     message_size_limit = 157286400
     # 邮箱最大为300MB,当然,他需要比邮件大
     mailbox_size_limit = 314572800

    编辑 /etc/sasl2/smtpd.conf,原作者目的是为了使用单独的用户,但我最终要用LDAP,所以不需要理会,保留原状

    pwcheck_method: saslauthd
    mech_list: plain login

    在 /etc/skel 建立家目录模版

     mkdir /etc/skel/Maildir
     chmod 700 /etc/skel/Maildir

    老用户似乎不会自动建立,手工建立起来吧。试试

    service postfix restart
    service saslauthd restart
     
    chkconfig postfix on
    chkconfig saslauthd on
     
     # 设置默认MTA
    alternatives --config mta
    选中postfix为默认MTA

    这时候用webmin的收发是不成问题了,但仅这样还不行,还需要用telnet验证一下

    这时会提示:fatal: no SASL authentication mechanisms

    因此先改为

    smtpd_sasl_auth_enable = no

    再次telnet

    telnet xx 25
     
    ehlo localhost
    mail from:admin@backup.org
    rcpt to:admin@backup.org
    data
    From:xxoo@test.org
    To:admin@backup.org
    Subject: My first
    test
    .
    quit

    可以用webmin等工具看,也可以直接杀到 Maildir里看,应该在 ~/Maildir/new/ 里面。

    三、安装/配置 Cyrus SALS 

    四、安装/配置 Dovecot 

    1、编辑文件 /etc/dovecot/dovecot.conf
    找到行 #protocols = imap pop3 lmtp ,把#去掉,让这行生效:
    protocols = imap pop3 lmtp

    #接着上行添加一段:(根据 dovecot 的版本不一样,如下内容有可能是在其他的文件中体现,比如: conf.d/10-master.conf

    service auth {
    unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
    }
    }
    接着找到行 #login_trusted_networks = ,把#去掉,并修改为(自己的内网)
    login_trusted_networks = 192.168.0.0/24
    编辑好保存。

    2、接着编辑文件 /etc/dovecot/conf.d/10-mail.conf
    找到 #mail_location = maildir:~/Maildir ,把 # 去掉,使这行生效:
    mail_location = maildir:~/Maildir

    编辑好保存。

    3、执行命令开启 dovecot服务:
    systemctl enable dovecot.service
    systemctl start dovecot.service

    4、使用命令行测试 dovecot 配置

    4。1 检查 端口 pop3 110 是否开通:

    netstat -tan | grep -i :110 

    如果出现则证明 110 端口开通

    4。2 命令行收邮件

    telnet localhost 110

    user $ROOT

    pass $YOURPASSWORD

     执行上述命令后,如果都是显示的 OK ,则表示正常,否则,请检查日志文件确认错误的原因

    启动dovecot报错  

    2012-04-12 11:19:22|  分类: other server|字号 订阅

     
     
    [root@wlt sbin]# ./dovecot 
    doveconf: Fatal: Error in configuration file /etc/dovecot/dovecot.conf line 86: No matches
    [root@wlt ~]# cd /opt/dovecot/share/doc/dovecot/example-config/
    [root@wlt example-config]# cp -a conf.d/ /etc/dovecot/
    [root@wlt sbin]# ./dovecot 
    doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 12: ssl_cert: Can't open file /etc/ssl/certs/dovecot.pem: No such file or directory
    进入源码包:
    [root@wlt ~]# cd /opt/software/dovecot-2.0.20/doc
    [root@wlt doc]# mkdir /etc/ssl/certs -p
    [root@wlt doc]# mkdir /etc/ssl/private -p
    [root@wlt doc]# sh mkcert.sh 
    Generating a 1024 bit RSA private key
    .................................++++++
    ........++++++
    writing new private key to '/etc/ssl/private/dovecot.pem'
    -----

    subject= /OU=IMAP server/CN=imap.example.com/emailAddress=postmaster@example.com
    SHA1 Fingerprint=AF:CE:BC:66:02:7D:65:08:A3:B5:C4:5B:5D:90:E3:7F:85:E8:4D:AB
    [root@wlt sbin]# ./dovecot               
    [root@wlt sbin]#
     
     
    【特别说明】使用 测试命令登录 110 端口时,如果登录失败,记得经常查看日志文件: postfix 的默认日志文件在 /var/maillog/ 下,但在 suse 系统时,检查目录/var/log/mail.err 
     
    mail dovecot: auth-worker(4520): Error: pam(root,10.18.0.30): pam_authenticate() failed: Authentication failure (/etc/pam.d/dovecot missing?
    根据提示显示,pam.d/dovecot 文件丢失。系统需要访问本文件,说明是通过 pam 的方式进行的用户认证。编辑文件,形成用户及密码验证即可。
    需要注意 10-auth.conf 文件中的选项  disable_plaintext_auth 选项是否为 on,表示容许明文密码验证,默认设置为 yes。(通过 doveconf | grep -i disable 命令查看)
    1、检查 conf.d/10-auth.conf 文件中的配置:
      disable_plaintext_auth = on # 允许明文密码验证。
    2、生成 pam.d/dovecot 文件
      vim /etc/pam.d/dovecot
          test@examples.com:{PLAIN}password
    3、重新 dovecot 进程
      sbin/dovecot stop
          sbin/dovecot

    五、安装/配置 OpenLDAP

  • 相关阅读:
    5种类型的程序猿
    cocos2dx 关于lua 绑定的环境配置官方文档翻译与 将自己定义c++方法绑定到lua的的方法
    智能聊天机器人实现(源代码+解析)
    storm trident merger
    分析Redis架构设计
    Spring+Struts+Hibernate 简介(转)
    java面试题(开发框架)
    Jsp+Servlet+JavaBean经典MVC模式理解
    Loadrunner中影响"响应时间"的设置
    phpredis中文手册——《redis中文手册》 php版(转)
  • 原文地址:https://www.cnblogs.com/AloneSword/p/3172548.html
Copyright © 2011-2022 走看看