`

dovecot + postfix + postfixadmin 建立mail服务器中的几个事项

阅读更多


我是新手!
第一次建立自己单位的mail服务器。根据网上的资料都无法通过md5加密口令的smtp认证。自己改动了几个地方,终于实现了。
从网上得到了很多资料,这次回报一下,有什么不对的地方,请大家指出。

首先你可以网上搜一下完整的PHP APACHE MYSQL DOVECOT POSTFIX的安装事项,再看看这篇能不能解决你遇到的问题。

服务器版本:CentOS 4.5 X86_64
其它的相关软件都是最新版本

1.安装PHP的时候,在configure的时候,加上 --with-mycrypt --with-hash ,网上有安装的方法;
2.安装好mysql , 我的mysql装在  /db/mysql
3.创建相应的用户和工作组
#groupadd -g 2002 postfix
#groupadd -g 2003 postdrop
#useradd -u 2002 -g 2002 -G postdrop -d /dev/null -s /sbin/nologin postfix
#useradd  -d /dev/null -s /sbin/nologin dovecot

4.安装dovecot
#./configure --prefix=/usr/local/dovecot --sysconfdir=/etc/dovecot --with-sql --with-sql-drivers --with-mysql
#make && make install

   配置dovecot.conf
#cd /etc/dovecot
#cp dovecot-example.conf dovecot.conf
#vi dovecot.conf
base_dir=/var/run/dovecot
protocols=imap imaps pop3 pop3s
listen=*
disable_plaintext_auth = no
ssl_disable = yes
mail_location = maildir:/mail/%d/%n  //服务器邮箱的统一位置,maildir格式,如/mail/xyz.com/username
pop3_uidl_format=%08Xu%08Xv

auth default {
        ...
        mechanisms = PLAIN LOGIN CRAM-MD5 DIGEST-MD5
        passdb sql { //去掉注释
                args = /etc/dovecot/dovecot-sql.conf
        }
        ...
        userdb sql {//去掉注释
                args = /etc/dovecot/dovecot-sql.conf
        }
        ...
        socket listen {
                ...
                client {
                        path = /var/run/dovecot/auth-client   //postfix依靠dovecot 实现 SMTP AUTH 时要用,在postfix中的main.cf配置文件中的smtpd_sasl_path=要引用这项
                        mode = 0660
                        user = postfix
                        group = postfix
                }
        }
}

配置dovecot-sql.conf
#cp dovecot-sql-example.conf dovecot-sql.conf
#vi dovecot-sql.conf
  driver = mysql
  connect =  host=localhost dbname=postfix user=postfix password=postfixPnp1993
default_pass_scheme=MD5   //改成PLAIN-MD5 后就不会与postfixadmin生成的密码兼容,除非使用下面介绍的修改postfixadmin,
//dovecot的加密方式见 http://wiki.dovecot.org/Authentication/PasswordSchemes
  //关键的地方的,搞了好一阵子。初始是,邮件地址:username@xyz.com pop3账号username,会出现密码不正确,除非pop3账号也填username@xyz.com ,否则登陆不上。其实就是PASSWORD_QUERY的代码,改后就可以了,怪的是用where username='%u' 也不可以!!只能substring一下了
  password_query = select username as user,password from mailbox where substring(username,1,instr(username,'@')-1) = '%n' And active='1'
  user_query = select maildir as home,2002 as uid ,2002 as gid from mailbox where username='%u' And active='1'

创建符号链接
#ln -s /usr/local/dovecot/sbin/dovecot /usr/bin/dovecot

5.安装postfixadmin 以及里面的DATABASE_MYSQL.TXT同,网上有很多
6.安装postfix
解压postfix的邮箱限额补丁,如网上介绍
#gzip -d postfix-2.4.1-vda-ng.patch.gz
#cp postfix-2.4.1-vda-ng.patch postfix-2.4.1
#cd postfix-2.4.1
#patch -p1 < postfix-2.4.1-vda-ng.patch

#如下编译
#看这里Postfix SASL Howto  http://www.postfix.org/SASL_README.html
#make -f Makefile.init makefiles \
'CCARGS=-DHAS_MYSQL -I/db/mysql/include/mysql \
-DUSE_TLS -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"' \
'AUXLIBS=-L/db/mysql/lib/mysql -lmysqlclient -lz -lm'
#make
#make install  //一切按照缺省的就行了,可以把tmp设置成/tmp/postfix

#mv /etc/aliases /etc/aliases.old
#ln -s /etc/postfix/aliases /etc/aliases
#/usr/bin/newaliases

#vi /etc/postfix/main.cf
myhostname = mail.xyz.com  ##不能与mysql里的domain重名
mydomain = xyz.com
myorigin = $mydomain
mydestination = $myhostname localhost localhost.$mydomain #一定不要出现与MYSQL->postfix->domain表中重名的 如:$mydomain,所以我就选这行
mynetworks = 127.0.0.0/8
inet_interfaces = all
home_mailbox=Maildir/

#=====================Vritual Mailbox settings=========================
virtual_mailbox_base = /mail/
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_uid_maps = static:2002
virtual_gid_maps = static:2002
virtual_transport = virtual
#====================QUOTA========================
message_size_limit = 52428800  //每个邮件最大尺寸50M
mailbox_size_limit = 209715200 //邮箱大小限制200M
virtual_mailbox_limit = 209715200
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_overquota_bounce = yes
#====================SASL ESMTP Authenticat=================
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot  //用dovecot进行认证
smtpd_sasl_path = /var/run/dovecot/auth-client //与dovecot.conf中如下的的path一致,前面讲过
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =  permit_mynetworks,  //注意,后面到smtpd_sals_local_domain的每一行前面都有一个空格
permit_sasl_authenticated,
reject_invalid_hostname,
reject_non_fqdn_hostname,
reject_unknown_sender_domain,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
reject_unauth_destination
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_banner=$myhostname ESMTP


查看master.cf文件必须包含下面一行
  
 virtual unix - n n - - virtual

编辑/etc/postfix/mysql_virtual_alias_maps.cf 为以下内容
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address

编辑/etc/postfix/mysql_virtual_domains_maps.cf 为以下内容
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain

编辑/etc/postfix/mysql_virtual_mailbox_limit_maps.cf 为以下内容
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username

编辑/etc/postfix/mysql_virtual_mailbox_maps.cf 为以下内容
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username


如果你在dovecot-sql.conf中用的是default_pass_scheme=PLAIN-MD5,就要修改postfixadmin中的functions.inc.php的函数pacrypt
function pacrypt($pw,$pw_db){
//加入普通的md5加密
   if ($CONF['encrypt']=='md5'){
        $password=md5($pw);
   }
}
//同时也要改其它相关webmail操作中的有关加密password一项

修改config.inc.php
$CONF['encrypt']='md5';

如果你在dovecot-sql.conf中用的是default_pass_scheme=MD5 ,就不需要修改任何地方



好了,使用postfixadmin创建域和帐号
域:xyz.com
用户:test

启动
echo "" > /var/log/maillog

dovecot
postfix start

vi /var/log/maillog
看有没有错误

在客户端用outlook,foxmail,选中发信时服务器需要验证 SMTP AUTH, 测试一下。

分享到:
评论

相关推荐

    centos postfix+dovecot+postfixadmin

    利用postfix+dovecot+postfixadmin搭建自己的邮件服务器。

    RHEL5+postfix+webmail+dovecot+mysql+postfixadmin

    根据提供的文档内容,我们可以梳理出一个较为详细的关于“RHEL5+Postfix+Webmail+Dovecot+MySQL+PostfixAdmin”的知识点介绍。 ### 一、环境搭建基础 #### 1. RHEL5(Red Hat Enterprise Linux 5) - **版本**:...

    postfix+dovecot及+postadmin+Roundcube配置源码

    postfix、dovecot系统配置文件,postfixadmin及Roundcube 管理界面php源码信息,安装postfix及dovecot后替换配置文件,修改域名可直接使用。 操作系统: Centos7.2 dovecot: 2.2.36 (1f10bfa63) postfix: postfix-...

    postfixadmin企业邮件服务系统

    根据提供的文件信息,本文将详细解析如何在RHEL5.0上配置mysql+postfix+postfixadmin+dovecot的企业邮件服务系统,并分享具体的安装步骤和注意事项。 ### 一、项目背景 随着企业信息化程度的加深,邮件服务作为...

    postfixadmin邮件服务器搭建.docx

    postfixadmin邮件服务器搭建 包括postfix httpd dovecot authdaemond spamassassin clamd amavisd

    addon-mail:基于Postfix,Dovecot和Postfix Admin的邮件服务器-Erik73的家庭助理加载项

    带有Postfixadmin Web界面的Home Assistant的Postfix / Dovecot邮件服务器... 关于 重要提示:此附加组件要求已安装并运行MariaDB附加组件! 该插件是实验性的,可为您的域提供一个邮件服务器。 也可以在...

    postfixadmin:PostfixAdmin-Postfix邮件服务器的基于Web的虚拟用户管理界面

    Postfix管理员一个基于Web的开放源代码界面,用于在基于Postfix的邮件服务器上管理域/邮箱/别名等。 集成: 后缀IMAP / POP3服务器(例如Dovecot或Courier) 数据库后端(选择以下一项:sqlite,mysql,postgresql)...

    基于Postfix邮件系统

    - **安装证书**: 将证书安装到Postfix、Dovecot和Web服务器中。 **7.2 配置Postfix支持TLS** - **修改配置**: 在 `/etc/postfix/main.cf` 文件中添加TLS相关的配置项。 - **测试TLS**: 使用客户端工具测试SMTP服务...

    postfixadmin_2.3.4.tar.gz

    PostfixAdmin是一款开源的Web界面工具,专门用于管理基于Postfix的邮件服务器。它的出现极大地简化了邮件服务器的配置和管理工作,使得管理员无需深入理解复杂的命令行操作,也能高效地管理邮箱、域、别名等设置。...

    linux网络管理课程设计

    Postfix+Webmail+dovecot+mysql+postfixadmin** Postfix是一个邮件传输代理,用于处理邮件发送和接收。Webmail如Roundcube允许用户通过Web界面收发邮件。Dovecot是IMAP/POP3邮件服务器,提供邮件访问服务。MySQL...

    手把手教你配置postfix.txt

    根据给定文件的信息,我们可以提炼出关于Postfix配置的关键知识点,包括系统环境准备、软件安装、以及相关的组件集成。以下是对这些知识点的详细说明: ### 1. 系统环境准备 - **基本Linux知识与工具掌握**:文章...

    centos5+posrfix+php+mysql+webmail配置图文手册

    - 示例命令:`cp /etc/postfix/main.cf /backup/postfix/`、`cp /etc/dovecot/dovecot.conf /backup/dovecot/` ##### 9.3 数据备份 - 使用mysqldump备份MySQL数据库。 - 示例命令:`mysqldump -u root -p ...

    postfixadmin-3.2.tar.gz

     安装配置 postfix 和 dovecot,启用 imaps 和 smtps,禁止使用不安 全的 smtp 和 imap 发送和接收邮件;  安装配置 postfixadmin;  创建虚拟域 chinaskills.cn 以及 99 个邮件用户 mailuser1~ mailuser99...

    邮件服务器:UNMAINTAINED-使用Docker的简单而功能齐全的邮件服务器

    :warning_selector:硬件/邮件服务器聊天和问题建立Docker镜像 硬件/邮件服务器是一个简单且功能齐全的邮件服务器,构建为一组多个docker映像,包括: Postfix :全套的SMTP电子邮件服务器Dovecot :安全的IMAP和...

    IRedMail邮件服务器配置.pdf

    IRedMail是一款开源邮件服务器解决方案,它集成了多种邮件服务相关的组件,旨在提供一个全面、安全且易于管理的邮件服务环境。根据给定文件的信息,IRedMail遵循创作共用(Creative Commons)许可证,允许用户免费...

    docker-mail-server:Ansible剧本,可使用Docker部署功能齐全的邮件服务器堆栈

    邮件服务器 Ansible Playbook,用于设置安全的ssh,邮件和Web服务器。 分行 此处的脚本和剧本跟踪 将use_stable_release设置为true(默认)以使用稳定分支(当前为v1.1-stable ) 将use_stable_release设置为false...

    iredmail文档

    - **PostfixAdmin 2.2.x**:提供了管理Postfix邮件服务器的功能。 - **phpMyAdmin 2.11.9.x**:用于管理MySQL数据库的Web界面工具。 - **phpLDAPadmin 1.1.6.x**:用于管理OpenLDAP服务器的Web界面工具。 - **...

    基于Centos6.2X64系统下的邮件系统2012年6月4日.docx

    本文档详细介绍如何在Centos6.2 X64系统上搭建一套完整的邮件服务系统,包括邮件服务器(Postfix)、邮件客户端(Roundcube)、邮件认证与管理工具(PostfixAdmin)以及邮件安全防护组件(Amavis-new、ClamAV、...

    webadmin:SophiMail Webadmin和仪表板

    用于管理分布式电子邮件服务器引擎的集中式界面。 基于角色,是VAR,ISP和IT管理员的理想选择。 集成在所有SophiMail商业电子邮件安装中。 支持所有PostfixAdmin安装。 在Bootstrap和CakePHP上开发。 链接 贡献...

Global site tag (gtag.js) - Google Analytics