postfix-企业邮件服务器搭建完整版
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postfix-企业邮件服务器搭建完整版相关的知识,希望对你有一定的参考价值。
声明:本文为个人原创,引用请申明出处。此文在百度文库等地方上传过。百度文库ID:denhuaibo!此文最早上传于2014年。
附件提供文档下载。
postfix邮件服务器安装配置文档
目录
简介
这是一个集成项目,请仔细阅读本文档后再操作。遇到问题时请耐心检查配置和日志文件,本文档中如果没有列出相关解决方法请到网上寻求帮助吧!
本文档旨在让大家明白postfix和其它程序之间的关系,如何让他们协同工作。每种软件提供的功能,所完成何种任务。本文档不详细介绍postfix,具体详细的postfix参数和优化请参阅《POSTFIX权威指南》
这里以redhat6.4系统为例进行安装,其它系统可以根据实际情况对命令进行相应调整,配置方式不变。
在redhat中默认安装了sendmail的需要先使用rpm 命令安装完postfix后卸载掉sendmail,也可以不卸载使用chkconfig sendmail off命令禁止其启动。
在此使用的是一个完整的架构,其中会用到非常多的软件,所以在进行此实验之前需要一定的linux系统基础知识才能保证成功率。
会用到的软件有:
apache 提供网页后台管理功能,可使用nginx或者其它相关程序代替。
php 为postfixadmin组件提供浏览,因为postfix admin是使用php编写的网页
mysql 提供用户认证和虚拟邮件路径等数据信息
postfix 主邮件系统,提供邮件管理
postfix admin 提供邮件网页管理功能,是一个使用php编写的网页。可使用extmail代替。
cyrus-sasl 提供smtp发送邮件认证功能
pam_mysql 提供pam的mysql认证,与cyrus-sasl协同工作。可使用courier-authlib代替
dovecot 提供收件服务功能
Amavisd-new 邮件系统和杀毒软件之间的中介程序,负责调用杀毒软件对邮件进行病毒扫描
Clamav 一个开源的杀毒软件,另外一个比较好的是f-prot但是要收费。
总共有10个软件协同工作来构建出一套实用安全的邮件系统。以下内容是本人在部署完整个系统后发现在整个过程中费了很多的时间和经历,所以想想还是把它写下来贡献给大家学习参考。由于是事后回忆,当初也没有做笔记,所以很多在过程中遇到的错误没有记录下来实在是一个遗憾。希望大家引以为鉴,在平时工作和学习当中一定要做好笔记,特别是错误的处理过程。这里只能通过日志内容回忆一下处理的全过程供大家参考了。下面如无特殊说明,所使用的rpm包均在安装光盘中能直接找到
构建运行环境
为了方便后续操作,在安装之前有必要进行yum源的配置,然后通过光盘进行安装是比较方便的事情。所以下面从光盘安装的rpm包都使用yum命令操作,当然也可以使用rpm命令,看个人喜好了.
1、apache和php安装
yum install httpd 安装apache程序
php安装:
虽然安装光盘中有php的rpm包,但是只能提供一般的功能,postfixadmin中会用到两个功能是rpm包无法提供的,所以必须下载源码编译安装。否则打开网页配置时会出现如下错误,提示缺少mbstring和imap组件。
Error: Depends on: multibyte string - NOT FOUND
To install multibyte string support, install php5-mbstringWarning: Depends on: IMAP functions - NOT FOUND
To install IMAP support, install php5-imap
Without IMAP support, you won‘t be able to create subfolders when creating mailboxes.
可以到http://www.php.net/ 官网下载php的源代码,这里使用的是php-5.5.5.tar.gz当前最新版本。使用tar -zxf php-5.5.5.tar.gz解压然后编译,下面是编译的.configure选项
./configure --prefix=/usr/local/php5.5 --enable-bcmath --enable-mbstring --enable-sockets --enable-zip --with-apxs2=/usr/sbin/apxs --with-libxml-dir --with-gd --with-mysql--with-mysql-sock --with-jpeg-dir --with-freetype-dir --with-gettext--with-imap --with-imap-ssl --with-kerberos
程序运行的过程中可能会出现错误,无法继续的可能。下面列出一些来:
./configure: line 8423: /usr/sbin/apxs: No such file ordirectory 请安装httpd-devel组件
configure: error: xml2-config not found 请安装libxml2-devel
configure: error: jpeglib.h not found 请安装libjpeg-turbo-devel
configure: error:png.h not found 请安装 libpng-devel
configure: error: freetype.h not found. 请安装 freetype-devel
error: utf8_mime2text() has new signature 需要安装libc-client和libc-client-devel 可到rpmfind.net上下载
configure: error: Kerberos libraries not found. 请安装krb5-devel
configure: error: Cannot find OpenSSL‘s <evp.h> 请安装openssl-devel
其它错误,请自行网上查找答案。
如果通过,你会看到Thank you for using PHP.的这么一行,当然不一定显示在最后。
看到这个就表示成功很近了,使用make编译,然后make install安装。
默认安装完以后使用servicehttpd start就可以启动了,不需要什么配置。
可以在/var/www/html/下写一个php的测试页。
vi/var/www/html/index.php内容为:
<?php
phpinfo();
?>
然后保存,使用浏览器输入服务器的ip地址就能看到一片php的信息。当然如果高端一点的可以使用源码进行安装,其中配置过程就比较麻烦一点。具体方式可以参考网上的文档,这里不细说。
如果php网页无法执行,只能看到文件内容请检查httpd.conf文件中是否有一下内容:
LoadModulephp5_module modules/libphp5.so
AddHandlerphp5-script .php
AddTypetext/html .php
2、mysql安装配置:
同样使用yum installmysql-server 进行安装,当然数据库就比较麻烦一点。
安装完成后使用mysql_install_db命令对数据库进行初始化,接下来就可以启动数据库了。service mysqld start 启动
/usr/bin/mysqladmin-u root password “newpassword” 修改数据库密码,然后使用service mysqld restart重新启动一次,使用mysql -u root -p 输入上面的密码后登录数据库测试是否能正常使用。
3、postfixadmin安装
下载位置http://sourceforge.net/projects/postfixadmin/files/postfixadmin/目前使用的是2.3.6版本。
删除/var/www/html/index.php之前的测试文件,然后把postfixadmin-2.3.6.tar.gz解压到此处。
为postfix单独创建一个数据库和帐号,是比较明智的选择,便于管理和备份。
mysql -u root -p
输入密码登录数据库
mysql> createdatabase postfix character set utf8; 创建数据库
mysql> grantall privileges on postfix.* to [email protected] identified by ‘youpassword‘;
vi/var/www/html/config.inc.php修改内容
$CONF[‘configured‘]= true; 打开配置功能
$CONF[‘database_type‘]= ‘mysql‘; 设置网页数据库类型
$CONF[‘database_host‘]= ‘localhost‘; 数据库主机地址
$CONF[‘database_user‘]= ‘postfix‘; 数据库账户
$CONF[‘database_password‘]= ‘postfix‘; 数据库密码
$CONF[‘database_name‘]= ‘postfix‘; 数据库名字
修改完后保存
在浏览器中输入http://192.168.4.11/setup.php如果正常就能看到
输入一个密码点下面的按钮,会有提示要求再次编辑config.inc.php 文件输入
修改好以后在第一项输入刚才设置的密码,第二项为管理员email地址如[email protected]下面输入设置的密码。然后点按钮提交,这样就算设置完了。
首先新建一个域:
然后可以新建邮箱:
注意用户名和名字需要一模一样,否则可能会导致后面无法登录验证。具体原因不知道,如果你们明白怎么回事情,还希望发送邮件给我谢谢! denwork#qq.com把#改成@
建立还邮箱地址以后还是不能发送邮件,因为没有邮件服务程序。
安装配置postfix
配置好yum源,然后通过光盘进行安装是比较方便的事情。其实redhat系统在安装完成以后就已经安装完成了。yum install postfix进行安装
主要的配置文件:
/etc/postfix/main.cf postfix的打部分设置都在此文件中,后面会多次用到这个文件
/etc/postfix/master.cf 该文件规定了postfix每个程序的运行参数,后面也会使用到
编辑main.cf文件这里只列出修改的内容
myhostname =mail.test.com 输入本机的计算机名
mydestination = 因为要在下面设置virtual_mailbox_domains所以这里需要留空
mydomain = test.com 输入域名
inet_interfaces= all 运行的接口
mynetworks =192.168.4.11/32,127.0.0.1/32 设置信任的客户端地址
注释:设置虚拟邮件目录(下面的内容一样在main.cf里面)
virtual_mailbox_base= /var/mailbox 设置虚拟邮件目录
virtual_mailbox_maps= mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf 定义邮件结构,使用到的表是mailbox。里面保存了用户名密码,用户邮件的路径等。
virtual_mailbox_domains= mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf定义邮件域名。里面记录了邮件服务器可以服务的域名,可以为很多域名提供邮件服务。
virtual_alias_maps= mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf 定义邮件别名,比如每个部门有一个名字对应了整个部门所有的员工邮件地址。
virtual_minimum_uid= 48 因为是网页上面对其进行操作,所以这里的uid和gid需要是apahce的用户id,可以在/etc/passwd文件中查看,或者使用id apache命令查看。
virtual_uid_maps= static:48 同上
virtual_gid_maps= static:48 同上
virtual_transport= virtual 传输类型当然是virtual了
message_size_limit= 41720000 允许发送的最大邮件大小,注意这里不是附件而是整个邮件的大小。单位为Byte
mailbox_size_limit= 209715200 定义邮件可以使用的空间
virtual_mailbox_limit= 209715200 定义虚拟邮件可以使用的空间
virtual_create_maildirsize= yes
virtual_mailbox_extended= yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_limit_maps.cf用来定义设置邮箱容量,有了上面的两个项可以不使用。
virtual_mailbox_limit_override= yes
virtual_maildir_limit_message= Sorry, the user’s maildir has overdrawn his disspace quota, please try againlater.
virtual_overquota_bounce= yes
==============================main.cf完=========================================
上面main.cf文件中还有几个cf的文件,如
mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf意思是需要在/etc/postfix/mysql 目录下创建mysql_virtual_mailbox_maps.cf的文件,下面就给出这几个文件的内容。
/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf:
user = postfix 填写数据库账户
password = postfix 数据库密码
hosts = localhost 数据库地址
dbname = postfix 数据库名
table = mailbox 使用的表
select_field = maildir 关键字
where_field = username 条件
上面的动作完成使用账户密码等内容登录数据库,然后执行use postfix; select maildir from mailbox where username=”[email protected]”;得到的结果是这个邮件用户保存邮件的相对main.cf配置文件中virtual_mailbox_base = /var/mailbox选项设置的路径加上查询的结果。比如邮件名为[email protected]的用户邮件路径为/var/mailbox/[email protected]/。告诉postfix程序保存邮件的具体位置,下面其它类似文件的作用也是如此。就不做一一讲解了。
mysql_virtual_domains_maps.cf内容:
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
mysql_virtual_alias_maps.cf内容:
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address
mysql_virtual_mailbox_limit_maps.cf内容:
user = postfix
password = postfix
hosts = localhost
dbname = postfix
table = mailbox
select_field = quota
where_field = username
=================================关于数据库的设置文件完========================
还需要对master.cf文件进行设置,上面就写过这个文件是对postfix的各个程序进行控制,所以后面的收发文件、病毒查杀等程序都是在这个文件中设置。添加一行:
smtps inet n - n - - smtpd
到这里postfix基本就可以搭配postfixadmin进行收发邮件了。但是这尽限于本机,还无法像其它客户端一样通过网页或者outlook等客户端进行收发邮件。
对postfix进行测试,使用service postfix start命令启动程序。这里需要注意,就算显示OK也需要查看一下/var/log/maillog文件中是否有错误。否则还是会不成功的。
telnet 127.0.0.1 25可以测试postfix是否正常。
输入ehlo local
mail from:[email protected]
rcpt to:[email protected]
data
“输入邮件内容”
. 输入一个点结束编辑
250 2.0.0 Ok: queued as 2AE65203D6 出现类似内容代表邮件已经发出了。
在客户端发送邮件
经过上面的设置后,就可以发送邮件了。如果要达到使用foxmail或者outlook客户端进行邮件的收发还需要进行下一步配置,就是登录邮件服务器的验证。
启用stmpd程序的认证,这个认证的目的是可以使用客户端登录邮件服务器发送邮件,如果需要收邮件还需要另外一个程序。
常常使用saslauthd来进行程序认证,需要安装如下rpm包:
cyrus-sasl-lib、cyrus-sasl-devel、cyrus-sasl-plain、cyrus-sasl-md5、cyrus-sasl。
编辑/etc/sasl2/smtpd.conf配置文件:
pwcheck_method:saslauthd 认证程序
log_level: 3 日志级别
mech_list: plainlogin 提供的认证类型
saslauthd_path:/var/run/saslauthd/mux 执行程序的socket文件默认为此位置
这里更正一下网上的内容,很多网站上面写的都是一样的,各个网站互相复制内容。导致结果全是错误的根本无法提供验证。后来找到一个方法,就是使用pam_mysql模块为sasl程序提供pam的验证功能达到验证的目的。
下载pam_mysql源代码。http://download.chinaunix.net/download/0008000/7820.shtml在网上找到的链接,只能保证暂时有效。大家可以去网上搜索。我目前找到的最高版本pam_mysql-0.7RC1.tar.gz
使用如下命令进行编译安装。
./configure--with-openssl=/usr/include/openssl/ --with-mysql=/usr --with-pam=/usr --with-cyrus-sasl=/usr/include/sasl/
在配置程序运行的过程中会提示没有pam的头文件,需要安装pam-devel、mysql-devel
其中由于需要md5支持,需要把/usr/include/openssl/md5.h文件拷贝到/usr/include/md5.h下才能编译成功。如果没有这个文件需要安装openssl-devel。
然后make &&make install 编译并安装
把编译好的模块cp/usr/lib/security/pam_mysql.* /lib/security/目录下
编辑PAM模块,让smtp程序能调用pam进行mysql数据库认证,使用vi 打开/etc/pam.d/smtp.postfix删除原来的两项内容,添加以下两项内容:
auth sufficientpam_mysql.so user=postfix passwd=postfix host=localhost db=postfixtable=mailbox usercolumn=name passwdcolumn=password crypt=1 4
account required pam_mysql.so user=postfix passwd=postfix host=localhost db=postfix table=mailbox usercolumn=name passwdcolumn=password crypt=1 4
以上参数的解释和其它参数请查看程序编译目录的README文件。
除了上面的配置以外还需要在/etc/postfix/main.cf配置文件中添加以下内容:
broken_sasl_auth_clients= yes 启用sasl登录认证
smtpd_recipient_restrictions=
permit_mynetworks 允许mynetworks选项中的主机
permit_sasl_authenticated 允许通过sasl_authenticated认证的主机
reject_invalid_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_auth_enable= yes
smtpd_sasl_path= smtpd
smtpd_sasl_local_domain= $myhostname
smtpd_sasl_security_options= noanonymous
smtpd_banner =Welcome to our $myhostname ESMTP,Warning: Version Available!
调试方法:
配置好上面的配置文件以后重新启动postfix,使用telnet127.0.0.1 25进行调试,以下是调试内容:
[[email protected]]# telnet 127.0.0.1 25
Trying127.0.0.1...
Connected to127.0.0.1.
Escape characteris ‘^]‘.
220 Welcome toour localhost.localdomain ESMTP,Warning: Version Available! 这里显示的内容是上面main.cf中smtpd_banner= Welcome to our $myhostname ESMTP,Warning: Version Available!的信息。
ehlo local 查看服务器支持的信息。
250-localhost.localdomain
250-PIPELINING
250-SIZE41720000
250-VRFY
250-ETRN
250-AUTH PLAINLOGIN
250-AUTH=PLAINLOGIN 显示这两项说明支持plain 和login认证
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth login 使用login认证方式
334 VXNlcm5hbWU6 提示输入用户名
dGVzdEB0ZXN0LmNvbQ==
334 UGFzc3dvcmQ6 提示输入密码
cmVkaGF0
235 2.7.0 Authenticationsuccessful 出现这个表示认证成功。
上面输入的密码是通过命令编码后的内容,在shell命令行中输入printf ”[email protected]” | openssl base 64,然后就能看到了,密码也是如此。同时可以在日志里面查看认证过程,涉及到的日志文件有/var/log/maillog, /var/log/message, /var/log/secure, 如果其中的内容都不能判断是什么错误的话,那么请启用mysql的详细日志。进入mysql 使用show variables like "%general_log%";语句进行查看,如果|general_log | OFF,那么set globalgeneral_log=1;语句开启,并在上一条语句中查看到的路径中文件的位置进行查看。然后再此执行认证过程,看是否mysql参与了认证过程。我在安装的时候就忘记把pam文件中原来的两行注释,造成没有通过mysql认证所以导致日志文件中总是提示认证失败没有别的错误提示。
在实际应用过程中会发现,当你使用A用户登录后以B用户的名义来寄信这也是可以的。所以必须杜绝这种情况发生。设置防止伪造发信人:
在main.cf中添加
smtpd_sender_login_maps=
mysql:/etc/postfix/mysql/mysql_sender_login_maps.cf,mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf
smtpd_reject_unlisted_sender= yes
smtpd_sender_restrictions= reject_authenticated_sender_login_mismatch
smtpd_recipient_restrictions=
reject_sender_login_mismatch
reject_authenticated_sender_login_mismatch
修改后的smtpd_recipient_restrictions=
permit_mynetworks
reject_invalid_hostname
reject_unknown_sender_domain
reject_sender_login_mismatch
reject_authenticated_sender_login_mismatch
permit_sasl_authenticated
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_unknown_recipient_domain
reject_unauth_pipelining
reject_unauth_destination
# reject_non_fqdn_hostname
注意这个列表的顺序,否则可能出问题。
数据库文件配置:
mysql_sender_login_maps.cf:
user = postfix
password = ps.test.com
hosts =localhost
dbname = postfix
table = mailbox
select_field =username
where_field =username
mysql_virtual_alias_maps.cf:
user = postfix
password = ps.test.com
hosts =localhost
dbname = postfix
table = alias
select_field =goto
where_field =address
additional_conditions= AND active=‘1‘
配置完后重启postfix服务,再进行测试。使用A账户和密码登录,指定发件人为B 如<from:B邮箱地址>如果以上配置成功会出现如下类似错误:
postfix/smtpd[10220]:NOQUEUE: reject: RCPT from unknown[112.193.145.100]: 553 5.7.1 <[email protected]>:Sender address rejected: not owned by user [email protected]; from=< [email protected]> to=< [email protected]> proto=ESMTP helo=<CV0024762TO>
另一种认证更简单
smtp.conf配置
pwcheck_method:authdaemond
log_level: 3
mech_list: plainlogin
srp_mda: md5
password_format:crypt
authdaemond_path:/usr/local/courier-auth/var/spool/authdaemon/socket
courier-authlib安装
./configure--sysconfdir=/etc --prefix=/usr/local/courier-auth--with-authmysqlrc=/etc/authlib/authmysqlrc--with-mysql-libs=/usr/lib/mysql/ --with-mysql-includes=/usr/include/mysql/
在configure期间如果提示LibTool ltdl库文件没找到就需要安装libtool-ltdl-devel这个软件包。
makeinstall-configure配置文件可以使用这个命令来生成
按照上面的配置安装完成后,所有的配置文件都在/etc/authlib下面。
配置authdaemonrc文件告诉程序使用mysql模块认证。
authmodulelist="authmysql"
authmodulelistorig="authmysql"
只需要修改这两项就行了。
authmysqlrc文件
MYSQL_SERVER localhost
MYSQL_USERNAME postfix
MYSQL_PASSWORD postfix
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_PORT 3306
MYSQL_DATABASE postfix 数据库名称
MYSQL_USER_TABLE mailbox 数据库表名
MYSQL_CRYPT_PWFIELD password 密码字段
DEFAULT_DOMAIN test.com 服务器域名
MYSQL_UID_FIELD 89 postfix的账户ID
MYSQL_GID_FIELD 89 postfix组ID
MYSQL_LOGIN_FIELD username 数据库表中带域名的字段
MYSQL_HOME_FIELD ‘/var/mailbox/‘ 邮件存放位置,和main.cf文件中的一致
MYSQL_NAME_FIELD name 用户名字段
MYSQL_MAILDIR_FIELD maildir 邮件路径字段
MYSQL_WHERE_CLAUSE active=‘1‘ 是否为激活状态
在编译目录下把courier-authlib.sysvinit文件复制到/etc/init.d目录下courier-authlib这样就可以使用service命令启动了。
排错:
warning: SASL authentication failure: cannotconnect to Courier authdaemond: Permission denied
出现以上信息时,请检查/usr/local/courier-auth/var/spool/authdaemon目录的权限,请增加执行权限。
warning: SASL authentication failure: cannotconnect to Courier authdaemond: No such file or directory
1、出现以上信息,请确认courier-authlib已经启动。
2、authmysqlrc、smtp.conf文件中每行的结尾是否有空格。特别是authdaemond_path:/usr/local/courier-auth/var/spool/authdaemon/socket
3、main.cf文件中smtpd_sasl_local_domain= 参数需要为空。
在客户端接收邮件
如果你通过了上面的配置,那么恭喜你。经过漫长的测试和配置过程,你的邮件服务器已经可以通过客户端发送邮件了,但是很遗憾的告诉你。到这里你也才刚刚完成了整个邮件系统建设的一半工作,只能发不能收算什么邮件系统。下面就来介绍如何使用客户端来接收别人发来的邮件。
这里使用到的软件是dovecot使用yum installdovecot进行安装,可以先查看一下包的文件结构,这样比较能知道配置文件等的位置。
首先打开/etc/dovecot/dovecot.conf,里面修改的内容有
base_dir =/var/run/dovecot/
protocol pop3
把这两行的注释去掉,
接下来是下级目录conf.d中10-auth.conf配置认证方式
disable_plaintext_auth= no 支持明文传输
auth_mechanisms= plain login加上认证类型
#!includeauth-system.conf.ext 注释掉这行
!includeauth-sql.conf.ext 取消这样的注释。打开使用sql认证的功能
10-mail.conf配置mail的存放路径。
找到mail_location的行,添加mail_location= maildir:/var/mailbox/%[email protected]%d/ 这里只的是mail的目录为/var/mailbox/邮箱名@域名/。
first_valid_uid= 48 uid为系统的apache用户ID,这里一定要修改正确否则也会认证不成功
20-pop3.conf配置去掉pop3_uidl_format的注释。
在/etc/dovecot/下新建一个配置文件dovecot-sql.conf.ext,这个文件的位置取决于在conf.d目录下auth-sql.conf.ext配置文件中的路径。内容如下
driver =mysql
connect =host=localhost dbname=postfix user=postfix password=postfix 数据库的链接信息
default_pass_scheme= MD5 邮件密码加密方式
password_query =SELECT password, concat(‘/var/mailbox/‘,maildir) AS home, 48 AS uid, 48 AS gidFROM mailbox WHERE username = ‘%u‘
user_query =SELECT concat(‘/var/mailbox/‘,maildir) AS home, 48 AS uid, 48 AS gid FROMmailbox WHERE username = ‘%u‘
配置完成后就可以启动dovecot服务了。servicedovecot start
测试方式也可以使用telnet127.0.0.1 110
[[email protected]]# telnet 127.0.0.1 110
Trying127.0.0.1...
Connected to127.0.0.1.
Escape characteris ‘^]‘.
+OK Dovecot ready.
+OK
pass redhat
+OK Logged in.
list
+OK 3 messages:
1 2492
2 435
3 320
如果到这里就证明认证已经可以正常使用了,如果遇到无法认证可以到maillog文件中查看日志。
在配置dovecot时总会发现日志内容不够详细,可以通过下面选项打开程序的调试日志便于程序的排错。
# 显示协议层的SSL错误
verbose_ssl = yes
# 详细的认证过程信息记录
auth_verbose = yes
# 更详细的认证调试(debug)信息
auth_debug = no
邮件传输加密
以上配置中的,密码和内容都是在网络上明文传输的,所以非常的不安全。可以启用SSL加密方式进行认证。
smtp邮件发送的加密认证:
生成ssl证书文件:
make -C/etc/pki/tls/certs smtpd.pem
mv /etc/pki/tls/certs/smtpd.pem /etc/postfix/
在生成证书是会提示输入一些内容,按照提示输入即可。
打开/etc/postfix/main.cf文件,添加以下内容:
#=========================postfixssl config==================
smtp_use_tls =yes
smtpd_use_tls =yes
smtp_tls_note_starttls_offer= yes
smtpd_tls_key_file= /etc/postfix/smtpd.pem
smtpd_tls_cert_file= /etc/postfix/smtpd.pem
smtpd_tls_CAfile= /etc/postfix/smtpd.pem
smtpd_tls_loglevel= 1
smtpd_tls_received_header= yes
smtpd_tls_session_cache_timeout= 3600s
打开/etc/postfix/master.cf文件:
smtps inet n - n - - smtpd
前面已经添加过这一项了,不过还是请确认一下。默认配置里面会有多余的两个-o选项,还请不要配置。以上是关于postfix-企业邮件服务器搭建完整版的主要内容,如果未能解决你的问题,请参考以下文章