2019-05-05 18:01:55 ly_6118 阅读数 868
  • IntelliJ IDEA神器使用技巧

    主题:IntelliJ IDEA神器使用技巧 内容:           1. IntelliJ IDEA介绍 2. IntelliJ IDEA安装 3. IntelliJ IDEA常用操作                 智能补全、template模版设置、代码重构、代码抽取、搜索、postfix... ...

    901 人正在学习 去看看 单笑

linux下postfix+dovecot+foxmail邮件服务器搭建

postfix配置和安装参考https://blog.csdn.net/ly_6118/article/details/89637270
这是之前用来测试垃圾邮件功能搭建的smtp服务器,后来在内网完整搭建了一个完整收发的邮件服务器
里面的postfix配置略有不同,因为在搭建dovecot的过程中发现无法收取邮件发现的问题,后来针对进行了修改。
DNS配置见https://blog.csdn.net/ly_6118/article/details/89637270

postfix配置

vi /etc/postfix/main.cf
最终配置文件如下(所有注销的配置)

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = mail.jjonline.com.cn
mydomain = jjonline.com.cn
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#注意这条配置,由于之前是注销的上面一条mydestination = $myhostname, localhost.$mydomain, localhost
#导致最后发送邮件时查看maillog报status=bounced (mail for jjonline.com.cn loops back to myself)
#邮件回退给了自己,没有发送出去
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.1, 10.0.0.0/8, 209.45.60.0/24
#这个信任域网段根据自己需求配置,最简单的就是配置0.0.0.0/0 所有网段都可以发送
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
broken_sasl_auth_clients = yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
message_size_limit = 5242880
smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination
smtpd_sasl_type = dovecot
#增加了dovecot
smtpd_sasl_path = private/auth
debug_peer_level = 2
debugger_command =
     PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
     ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES

cyrus-sasl安装与配置

sasl主要用于邮箱用户名密码认证
参考来源:https://www.cnblogs.com/ilanni/p/5294611.html 作者:烂泥行天下

cyrus-sasl安装
cyrus-sasl的安装很简单,使用如下命令:
yum -y install cyrus-sasl
查看版本cyrus-sasl,使用如下命令:
/usr/sbin/saslauthd -v
cyrus-sasl配置
修改saslauthd文件把MECH的值修改为shadow,如下:
vi /etc/sysconfig/saslauthd
SOCKETDIR=/run/saslauthd
MECH=shadow
FLAGS=

修改smtpd.conf文件,添加如下代码:
vi /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list:plain login CRAM-MD5 DIGEST-MD5
log_level: 3
saslauthd_path:/var/run/saslauthd/mux

测试cyrus-sasl
cyrus-sasl配置完毕后,我们来测试其是否正常。创建系统用户ilanni,并修改其密码,如下:
useradd ilanni &&echo ‘ilannimail’| passwd --stdin ilanni
su - ilanni
mkdir -p ~/mail/.imap/INBOX
#用户名 ilanni
#密码 ilannimail
用户创建完毕后,要启动cyrus-sasl,如下:
/etc/init.d/saslauthd start 或者 service saslauthd start
#这个和linux版本有关,有的版本不支持第一条
chkconfig saslauthd on

现在来使用刚刚创建的用户进行认证测试,如下:
testsaslauthd -u ilanni -p ‘ilannimail’
#会显示Success

测试postfix和用户名
telnet localhost 100
mail from:发件人邮箱或者<ly_mail1>
rcpt to:收件人邮箱或者<ly_mail1收件人名字>
data
邮件内容
.
quit

#建立了新的用户会在home目录下产生对应用户名的文件夹
在这里插入图片描述
这里建了ly_mail1和ly_mail2用户
/home/ly_mail1/Maildir/new
在对应目录下能看到发送的邮件
在这里插入图片描述
这个是用foxmail发件的内容
在这里插入图片描述

dovecot安装与基本配置

安装dovecot,使用如下命令:
yum -y install dovecot dovecot-devel dovecot-mysql pam-devel
dovecot --version
这里是2.2.36版本
在这里插入图片描述
dovecot基本配置

dovecot的配置文件都在/etc/dovecot/目录下。
vi /etc/dovecot/dovecot.conf
主要配置如下
protocols = imap pop3 lmtp
listen = , ::
login_trusted_networks = 0.0.0.0/0
disable_plaintext_auth = no
!include conf.d/
.conf
!include_try local.conf

vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
#有的配置文件里是注销mail_location = mbox:~/mail:INBOX=/var/mail/%u
#这里试过注销INBOX这条,最后导致收件箱无法读取到文件
#telnet localhost pop3里敲list始终显示0message,最后发现是maildir路径错了

vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
!include auth-system.conf.ext

禁用ssl认证
vi /etc/dovecot/conf.d/10-ssl.conf
ssl = no

启用dovecot的日志
vi /etc/dovecot/conf.d/10-logging.conf
info_log_path = /var/log/dovecot_info.log
debug_log_path = /var/log/dovecot_debug.log

启动dovecot
service dovecot start
chkconfig dovecot on

测试dovecot
telnet mail.ilanni.com 110
telnet mail.ilanni.com 143
出现+Ok Dovecot ready,则表示dovecot配置正确。
这里需要注意的是收件箱登录的用户名不是完整的邮件名,是不带域名的
测试输入收件箱用户名密码输入list显示有收到三封邮件
retr 1 读取第一封邮件
这里能够收到就说明dovecot配置成功了
在这里插入图片描述

配置foxmail

选择手动配置,这里配置的收件服务器和发件服务器是一个地址,就是mail.域名
选择pop3协议,imap比较复杂
需要注意的是收件服务器和发件服务器用户名的密码要一致
原来配置的时候没注意分别配置了不一样的密码,发邮件的时候需要重新验证密码,查看服务器上的日志一直报认证错误
修改smtp服务器密码
#创建smtp账号
saslpasswd2 -c -u postconf -h mydomain test #回车会要求输入密码,连续两次
#表示创建test@$mydomain的邮箱账号(也是smtp的账号)和密码
#本例就是创建test@jjonline.com.cn账号和密码
#此处注意的是smtp登录用的账号并不是单纯的用户名 而是整个邮箱地址字符串
在这里插入图片描述
点击收取就可以收到邮件了,这里的邮件就是从服务器/home/ly_mail1/Maildir/里读取
在这里插入图片描述

2019-06-04 15:55:48 qq_40280582 阅读数 1321
  • IntelliJ IDEA神器使用技巧

    主题:IntelliJ IDEA神器使用技巧 内容:           1. IntelliJ IDEA介绍 2. IntelliJ IDEA安装 3. IntelliJ IDEA常用操作                 智能补全、template模版设置、代码重构、代码抽取、搜索、postfix... ...

    901 人正在学习 去看看 单笑

第一章:实验环境和目标

1.实验环境

Vm虚拟机安装CentOs7系统
CentOs7的IP地址:192.168.81.133
Win7客户端(测试用),有Xshell或者SecureCRT工具

2.目标:

CentOs7下搭建Postfix邮件服务器,配置域名服务远程登录访问,新建用个测试用户(sent,recv),两个用户用telnet命令登录邮件服务器,实现两个用户的邮件互发,并

第二章:实验内容

准备工作
搭建DNS服务   
搭建Postfix和dovecot服务
Telnet的安装和配置
远程登录并实现两个用户邮件互发
WebMail的搭建和验证

第三章:实验步骤

1.准备工作:

1.1 关闭防火墙并设置开机不自启

systemctl stop firewalld
systemctl disable firewalld

1.2 关闭selinux

setenforce 0

 

2.搭建DNS服务

2.1 安装DNS服务

yum install bind -y

2.2 修改named.conf配置文件

vim /etc/named.conf
 

2.3 修改named.rfc1912.zones文件,添加正向区域

vim /etc/named.rfc1912.zones

2.4 拷贝区域配置模板

cp -p /var/named/named.localhost /var/named/duiyi.com.zone

2.5 修改正向区域文件

vim /var/named/duiyi.com.zone

2.6 检查语法错误

named-checkconf

2.7 开启DNS服务,并设置开机自启

systemctl start named
systemctl enable named

2.8 设置服务器域名

vim /etc/resolv.conf

2.9 解析验证

nslookup mail.duiyi.com

 

3.搭建Postfix和dovecot服务

3.1 检查系统是否已经安装了postfix服务器

rpm -q postfix

CentOs7默认有postfix服务,如果没有,通过 yum install postfix -y 安装即可

 

3.2 修改主配置文件

vim /etc/postfix/main.cf 

修改如下:

75行:myhostname = mail.duiyi.com              //本机主机名

83行:mydomain = duiyi.com                     //服务器域名

99行:myorigin = $mydomain                     //初始域名

164行:mydestination = $myhostname,$mydomain   //目标域

419 home_mailbox = Maildir/                   //邮件目录,在用户家目录下

3.3 检查配置文件是否有语法错误

postfix check

3.4 开启Postfix服务,并设置开机自启

systemctl start postfix
systemctl enable postfix

3.5 安装dovecot服务

yum install dovecot -y

3.6 修改主配置文件

vim /etc/dovecot/dovecot.conf

     修改如下:

14行:protocols = imap pop3 lmtp                   //支持的电子邮件协议

26行:disable_plaintext_auth = no                  //允许用户明文登录(这个需要自己手动添加)

49行:login_trusted_networks = 192.168.81.133/24   //服务器的ip/24

3.7 修改子配置文件

vim /etc/dovecot/conf.d/10-mail.conf

修改如下:

24行: mail_location = maildir:~/Maildir           //服务器电子邮件保存的目录

3.8  重启dovecot并设置开机自启

systemctl restart  dovecot
systemctl enable   dovecot

3.9  创建测试用户sent和recv,并设置登录密码

useradd sent
passwd sent
useradd recv
passwd recv

 

3.10 查看用户是否创建成功

ls /home

 

4.Telnet的安装和配置

4.1 安装telnet和telnet-server

yum install telnet telnet -y
yum install telnet telnet-server -y

4.2 安装Telnet管理工具xinetd

yum install xinetd -y

4.3 修改配置文件

vim  /etc/xinetd.d/telnet

将disable = yes 改为 disable = no

service telnet
{
   flags              = REUSE
   socket_type        = stream
   wait               = no
   user               = root
   server             = /usr/sbin/in.telnetd
   log_on_failure     += USERID 
   disable            = no                      #将语句 disable = yes 改为 disable = no
}        

4.4 激活服务

systemctl restart xinetd

4.5 检查23号端口是否开启

netstat -tnl | grep 23 

 

5.远程登录并实现两个用户邮件互发

5.1 修改Win7/10的DNS为CentOs服务器地址:192.168.81.133

5.2 在Win7/10上启动Telnet功能,让其作为客户端

控制面板->程序->程序和功能->启动或关闭Windows功能->Telnet客户端  勾选并确定

5.3 打开Xshell或者SecureCRT等远程工具(cmd窗口也行,不过字符编码要修改为utf-8),在Xshell登录sent用户

telnet sent@mail.duiyi.com

 

5.4 Xshell新建选项卡,登录recv用户

telnet recv@mail.duiyi.com

 

5.5 sent用户发送邮件到recv用户

echo "this is a mail " | mail -s "mail"  recv@duiyi.com

5.6 recv查看邮件

出现如上图表示两个用户可以收发邮件

 

6.WebMail的搭建和验证

6.1 安装squirrelmail

yum install squirrelmail –y

6.2 创建符号链接mail

cd /var/www/html/
ln -s /usr/share/squirrelmail/ mail

6.3 对web页面进行配置

cd /var/www/html/mail/config
./conf.pl

依次配置:

6.3.1:语言设置

语言设置

 

6.3.2:设置为中文简体

6.3.3:修改字符集为GB2312

修改字符集为GB2312

 

6.3.4:返回到主菜单

返回到主菜单

 

6.3.5:服务器设置

服务器设置

 

6.3.6:修改域名

修改域名

 

6.3.7:修改邮件协议为SMTP

修改邮件协议为SMTP

 

 

6.3.8:返回到主菜单

返回到主菜单

 

6.3.9:保存修改

保存修改

 

 

6.3.10:退出

退出

 

 

6.4 注释掉UTF-8字符集

vim /etc/httpd/conf/httpd.conf  +316 

 

6.5  在Win7/10浏览器上登录WebMail页面,输入:http://www.duiyi.com/mail

6.6 登陆sent和recv用户(如果登陆不上重启dovecot:systemctl restart  dovecot)

 

 

6.6 sent用户发送邮件给recv用户

 

6.7  转到recv用户查看邮件

 

出现如图即搭建Web页面邮件服务成功 !!!

 

 

 

 

 

 

 

2009-11-18 15:35:09 leeyinlau 阅读数 148
  • IntelliJ IDEA神器使用技巧

    主题:IntelliJ IDEA神器使用技巧 内容:           1. IntelliJ IDEA介绍 2. IntelliJ IDEA安装 3. IntelliJ IDEA常用操作                 智能补全、template模版设置、代码重构、代码抽取、搜索、postfix... ...

    901 人正在学习 去看看 单笑
我在服务器上装了ubuntu server 9.04后,公司要求安装一个邮件服务器,晕倒,之前没有装过,只能search了!
以下是一个可用的过程,我尝试了,算是成功的第一步;

本文详细介绍Ubuntu Linux VPS下的Postfix邮件服务器的配置。
添加MX记录
由于MX记录添加后,可能生效要等待一段时间(也可能马上生效),所以在安装配置前,我们首先为域名添加MX记录。到域名提供商应该提供了修改DNS配置的方法,在那里配置域名的MX记录指向VPS的IP即可。假设我们要配置的邮件服务器的域名是zsjnet.com。确认MX记录的添加是否生效的方法是在Linux下运行:
host -t mx zsjnet.com
安装Postfix
运行命令:
apt-get install postfix
安装postfix,配置界面出来后选择Internet Site,System mail name填写bujieyi.cn。然后postfix应该就安装完毕并且启动了。 如果要给邮件服务器增加域名就修改/etc/postfix/main.cf文件中的如下行:
mydestination = zsjnet.com, localhost, localhost.localdomain, localhost
安装一个简单的邮件客户端用于测试:
apt-get install mailx
给support@rashost.com发一个邮件,应该能成功才对,否则说明有问题了。(最好给gmail.com邮箱发,不要给hotmail邮箱发,可能收不到的)
echo "test" | mail admin@zsjnet.com
support@rashost.com邮箱收到信件之后,要回复一下,然后在VPS上运行mail命令,应该能够看到回复的邮件了。
root@nevermind:~# mail
Mail version 8.1.2 01/15/2001. Type ? for help.
"/var/mail/root": 1 message 1 new
>N 1 support@rashost.c Tue Jul 15 14:14 28/924 Re:
如果发信成功并且收到回复,则进行下一步
配置POP3和IMAP支持
POP3和IMAP是两种收邮件的协议,一般配置一种即可,当然两种都配置也可。postfix不带pop3和imap,我们选择dovecot软件。
apt-get install dovecot-imapd dovecot-pop3d
运行之后pop3和imap都应该启动了,在Windows客户端下用thunderbird邮件客户端软件应该可以用pop3或者imap协议收邮件了。
SMTP发信认证
这是高级话题,请参考:http://rashost.com/blog/postfix-smtp-auth/
加密的SMTP发信认证
这更是高级话题,请参考:http://rashost.com/blog/postfix-tls-smtp/
使用Maildir格式存储邮件
该步骤是可选的,是关于邮件服务器上邮件的存储格式。缺省的是用一个文件保存所有邮件,而Maildir格式是使用一个目录来保存所有的邮件,Maildir的格式相比单个文件更灵活,在邮件多的时候效率更高。 在/etc/postfix/main.cf中加入
home_mailbox = Maildir/
mailbox_command =
然后重启postfix即可:
/etc/init.d/postfix restart
2019-04-07 15:17:12 qq_38684504 阅读数 1484
  • IntelliJ IDEA神器使用技巧

    主题:IntelliJ IDEA神器使用技巧 内容:           1. IntelliJ IDEA介绍 2. IntelliJ IDEA安装 3. IntelliJ IDEA常用操作                 智能补全、template模版设置、代码重构、代码抽取、搜索、postfix... ...

    901 人正在学习 去看看 单笑

1. 实验环境:

    Linux rhel6.5作为邮件服务器,IP:192.168.20.20

    Windows server 2008上安装Foxmail,作为邮件测试的客户端,IP:192.168.20.130

Postfix邮件系统(一)

2. 实验步骤:

(1)前期准备

1.1> 配置邮件服务器端的IP地址,并重新启动网络服务;

1.2> 清除防火墙规则,禁用seLinux服务;

注:一般情况下,系统会自带sendmail服务,由于Postfix系统兼容并沿用了sendmail的部分设置,为了避免发生端口冲突、程序冲突等现象,应将系统自带的sendmail服务停用,并将默认启动状态设为关闭;

1.3> 如下所示,可以发现系统并没有安装sendmail服务,所以应该先安装sendmail服务;

1.4> 将sendmail服务停用,并将默认启动状态设为关闭;

1.5> 因为需要Postfix支持SASL认证(通过软件包cyrus-sasl),所以应确认是否将需要的相关软件包已安装好。

1.6> 查看之后,发现缺少cyrus-sasl-devel软件包,所以,需要安装缺少的软件包;

(2)Postfix

2.1> 由于我们需要安装postfix的源码包,所以需要先卸载postfox RPM包;

2.2> 源码编译及安装;

1)为了加强邮件服务的权限控制,需要创建专门的运行组账号postfix和postdrop,以及用户账号postfix。运行用户不需要直接登录到系统,也无需创建宿主文件夹。如下所示:系统中已经存在组账号postfix和postdrop;只需要将用户账户postfix加入到运行组账户postdrop中;

       

2)解包

将下载的postfix源码包解压,放到/usr/src/目录下, 并查看解压后的内容;

3)在配置Postfix软件包时,需要db*-devel包的支持,所以,首先查看系统是否安装了db*-devel包,如果没有,则需要进行安装;

       

4)配置

Postfix软件包的配置步骤使用“make makefiles”进行,具体配置选项可以参考源码目录中README_FILES/文件下的说明文件。例如,若要使Postfix支持发信认证,可参考文件SASL_README中的相关信息。

其中,编译参数CCARGS和AUXLIBS的作用如下:

  • CCARGS参数:为编译器提供额外的扩展参数。例如,启用SASL认证,并指出cyrus-sasl认证程序的头文件位于/usr/include/sasl/。
  • AUXLIBS参数:为编译器指出位于标准位置之外的额外函数库。例如,cyrus-sasl认证程序的库文件位于/usr/lib64/sasl2/。

注:1. 如果配置写错误,需要重新配置,首先输入“make makefies clean”命令清除。

        2.如果配置失败,可能是缺少db*-devel包。

5)编译并安装;

注:如果编译失败,除了缺少ncurses-devel包之外,可能还缺少cyrus-sasl*包。

执行make install命令以后,最后阶段会需要设置一些安装参数,一般直接按回车键接受默认或自动识别的配置即可。完成安装以后,应执行postconf –a命令检查所支持的认证方式,若输出结果中未包含“cyrus”,则应检查配置步骤,纠正错误后重新进行配置、编译并安装

6)如下图所示:输出结果中包含“cyrus”和“dovecot”

2.3> Postfix服务控制;

1)Postfix邮件系统的控制主要通过/usr/sbin/postfix命令进行,结合start、stop、check、reload选项分别实现启动、停止、检查、重载服务的操作。

需要注意的是,实际监听服务的进程名并不是postfix,而是master

2)当重新调整邮件服务配置以后,可以通过check选项进行基本的语法检查,检查无误后再通过reload选项来重载服务。

主要目录和配置文件

主要目录

  • /etc/postfix包括postfix服务的主配文件、各类脚本、查询表等。
  • /usr/libexec/postfix/:包括postfix服务的各个服务器程序文件。
  • /var/spool/postfix/:包括postfix服务的邮件队列相关的子目录,每个队列子目录用于保存不同的邮件。常见的几个子目录及用途如下所述:
  1. incoming(传入):存放刚接收到的邮件。
  2. active(活动):存放正在投递的邮件。
  3. deferred(推迟):存放以前投递失败的邮件。
  4. hold(约束):存放被阻止发送的邮件。
  5. corrupt(错误):存放不可读或不可分析的邮件。
  • /usr/sbin/:包括postfix服务的各种管理工具程序,这些程序文件名以post开头。主要的几个程序文件及其用途如下所述:
  1. postalias构造、修改和查询别名表。
  2. postconf显示和编辑main.cf配置文件。
  3. postfix启动、停止postfix邮件服务,要求有root用户权限。
  4. postmap构造、修改或者查询查询表文件(记录如别名等映射关系的文件)。
  5. postqueue查看邮件队列,一般用户也可以使用。
  6. postsuper管理邮件队列,要求有root用户权限。

主要配置文件

  • Postfix邮件系统的主要配置文件包括main.cf、master.cf,都位于/etc/postfix/文件夹下。其中,main.cf是postfix服务的配置文件,设置邮件服务器时以修改此文件的内容为主;而master.cf是主程序master的配置文件,一般不需要修改。
  • 在主配置文件main.cf中,可以调整的各种配置参数有近千个。大部分的配置参数都被自动设置了默认值,如果在main.cf文件中没有对应的设置,那么postfix服务器将使用默认值来启动及运行。因此,只需要修改很少的几个配置参数,就可以满足基本邮件服务器的要求了。
  • 使用postconf工具可以辅助配置过程,不带任何选项时将列出当前postfix服务器启用的所有配置参数,若添加“-n”选项则只列出使用非默认值的配置参数。

为了避免配置参数过多带来的干扰,提高易读性,建议对main.cf配置文件进行适当的简化,只保留与默认配置不同的参数。

2.4> 配置SMTP发信服务;

在整个电子邮件系统中,postfix基于SMTP协议提供邮件传递服务,并负责将邮件分发到用户的邮箱空间。对postfix服务的配置主要通过修改主配置文件/etc/postfix/main.cf来进行。

在main.cf文件中,以“#”号开头的行表示注释信息,其他行表示有效设置。设置行的格式与为shell变量赋值的形式非常类似,采用“配置参数=值”的形式,其中等号两边的空格可有可无。当某个配置参数包含多个值时,使用逗号或空格进行分隔,也允许换行进行分隔,但行首至少应有一个空格。

1)设置main.cf,并启动服务

在上述配置中,将mydestination的值设置为“$mydomain,$myhostname”,表示将@topsecedu.com和@mail.topsecedu.com域作为本地目标域,允许投递到本地邮箱空间。各用户的邮件将被保存到宿主目录下的Maildir/文件夹中。

    邮箱空间用来存放每个用户的电子邮件内容。在postfix服务器中,支持两种最常见的邮箱存储方式:Mailbox、Maildir(当指定的存储位置最后一个字符为“/”时,自动使用Maildir存储方式)。

  • Mailbox同一个用户的所有邮件内容存储为单个文件,通常保存在/var/spool/mail/目录下,文件名与用户名相同。Mailbox存储方式比较古老,当邮件数量较多时会降低查询和管理的效率。
  • Maildir使用目录结构来存储用户的邮件内容,每一个用户使用一个文件夹,每封邮件都作为一个独立的文件存放。Maildir方式的存取速度和效率要好一些,对于管理邮件内容也更加方便,大多数较新的邮件服务器都采用这种方式。

2)添加邮箱账号

Postfix服务器默认使用本机中的系统用户作为邮件账号,因此使用时只需要添加Linux用户账号即可。测试时,可以添加两个邮件账号yxz和cqq,并为其设置密码。

3)SMTP发送邮件测试

将postfix服务器交付使用之前,最好先在本机测试一下发信功能是否正常。命令行中的测试工作可以通过telnet命令进行。如果没有安装telnet服务,则需要进行安装;

4)因为需要telnet mail.topsecedu.com,所以需要将IP与域名的对应关系写入到hosts文件中;              

5)在本机测试一下发信功能是否正常。命令行中的测试工作可以通过telnet命令进行。例如:可以连接到邮件服务器的25端口,并输入相关的SMTP命令,以邮件账户yxz@topsecedu.com作为发件人,给cqq@topsecedu.com发送一封测试邮件

6)邮件发送并投递成功以后,可以到服务器中cqq用户的宿主目录下进行查看,新接收到的邮件保存在Maildir/new/目录中。

通过以上测试结果,不难发现已经能够通过postfix服务器发送并投递邮件了,但是还只能在服务器本机查看收到的邮件。若要使收件人能够从其他主机查收邮件,还需要进一步安装POP3或IMAP服务器,以提供邮件的下载服务。

(3)配置POP/IMAP收信服务

Dovecot是一个安全性较好的POP3/IMAP服务器软件,响应速度快而且扩展性好。Dovecot默认也使用Linux的系统用户,并通过PAM(Pluggable Authentication Module,可插拔认证模块)机制进行身份认证,只有通过认证后才允许用户收取邮件。

3.1> 预先创建运行用户;

3.2> 编译安装Dovecot软件包;

1)将dovecot的压缩包进行解压;

2)在编译安装之前,先确认pam-devel包是否安装。如果没有安装,必须先安装成功后,然后再配置;

3)进行配置,并指定配置文档的父目录;

4)编译并安装        

5)将dovecot添加为系统服务;

3.3> 建立配置文件,并启动服务;

1)建立配置文档

Dovecot的配置文件位于/etc/dovecot/目录下,主配置文件为dovecot.conf,默认并没有此文件,需要参考样例目录重新创建。为了方便以后的扩展配置,建议将各种样例配置文件都复制到/etc/dovecot/目录下。

若要支持系统用户认证,还应建立相应的PAM认证文件/etc/pam.d/dovecot,具体内容请参考/etc/pam.d/目录下的其他文件

2)调整主配置文件

为了降低初学难度,这里只使用系统用户认证,而并不使用SSL等安全机制。因此需要修改主配置文件dovecot.conf,将“!include conf.d/*.conf”行改为“!include conf.d/10-auth.conf”,并禁用SSL机制,允许在验证时使用明文的用户名和密码。除此之外,还需要指定邮箱格式及存储位置。

3)启动dovecot服务,并确认监听状态

Dovecot默认已配置为监听POP3/IMAP邮件协议,因此启动dovecot服务后,可以查看对TCP端口143、110的监听。

3.4> POP3接收邮件测试;

使用telnet连接到Dovecot邮件服务器的110端口,输入POP3操作命令,以邮箱账户cqq@topsecedu.com的身份查收邮件内容。测试过程如下所述:

通过以上测试结果,不难发现用户已经能够通过Dovecot服务器收取邮件。该服务器具备了SMTP发信功能、POP3/IMAP收信功能,一台简单的邮件服务器的设置就基本上大功告成了。

(4)测试发信、收信功能

4.1> 在Windows server2008上安装了Foxmail,将Windows中的hosts文件进行更改;添加如下信息;

4.2> 添加邮箱账户;

4.3> 发送测试邮件;

4.4> 接收测试邮件;

4.5> 在测试收信、发信的过程中,若出现失败的情况,应及时查看/var/og/maillog邮件进出日志,并根据相关信息分析、排查故障。

邮件系统的角色

  • MTA(Mail Transfer Agent,邮件传输代理):一般被称为邮件服务器软件。MTA软件负责接收客户端软件发送的邮件,并将邮件传输给其他的MTA程序,是电子邮件系统中的核心部分。
  • MUAMail User Agent,邮件用户代理):一般被称为邮件客户端软件。MUA软件的功能是为用户提供发送、接收和管理电子邮件的界面。
  • MDAMail Delivery Agent,邮件分发代理):MDA软件负责在服务器中将邮件分发到用户的邮箱目录。MDA软件相对比较特殊,它并不直接面向邮件用户,而是在后台默默的工作。有时候MDA的功能可以直接集成在MTA软件中,因此经常被忽略。

邮件通信协议

  • SMTP(Simple Mail Transfer Protocol,简单邮件传输协议):主要用于发送和传输邮件。MUA使用SMTP协议将邮件发送到MTA服务器中,而MTA将邮件传输给其他MTA服务器时同样也使用SMTP协议。SMTP协议使用的TCP端口为25。对于支持发信认证的邮件服务器,将会采用扩展的SMTP协议(Extended SMTP)。
  • POP(Post Office Protocol,邮局协议):主要用于从邮件服务器中收取邮件。目前POP协议的最新版本是POP3。大多数MUA软件都支持使用POP3协议,因此该协议应用最为广泛。POP3协议使用的TCP端口号为110。
  • IMAP(Internet Message Access Protocol,互联网消息访问协议):同样用于收取邮件。目前IMAP协议的最新版本是IMAP4。与POP3相比较,IMAP4协议提供了更为灵活和强大的邮件收取、邮件管理功能。IMAP4协议使用的TCP端口号为143。

Postfix邮件系统(二)

具体步骤:

(1)更改配置文件,添加SMTP认证配置

1.1> 设置Cyrus SASL函数库,并启动saslauthd服务;

建立SMTP认证配置文件/usr/lib64/sasl2/smtpd.conf(注意不要将文件名smtpd.conf误写为smtp.conf)。在该配置文件中设置了使用saslauthd服务作为认证方式,配置内容可参考/usr/lib/sasl2/Sendmail.conf文件。

  

1.2> 修改main.cf配置文件,添加SMTP认证配置,并重载服务;

添加如下信息:

smtpd_sasl_auth_enable=yes      //启用SMTP认证

smtpd_sasl_security_options=noanonymous   //禁止匿名使用SMTP服务

mynetworks=127.0.0.1

smtpd_recipient_restrictions=       //启用接收地址过滤

        permit_mynetworks,

        permit_sasl_authenticated,   //允许通过验证的用户

        reject_unauth_destination    //禁止未授权的目标地址

 

    在上述配置参数中,SMTP认证相关的几行设置含义如下:

  • mynetworks用来控制可以通过本服务器外发邮件的网络地址或IP地址,设置为127.0.0.1是为了确保后面的Web邮箱系统可以正常发送邮件。
  • smtp_recipient_restrictions:设置收件人地址过滤规则,其匹配策略是“从上至下逐条检测,有匹配即停止”。其中,常用的几个值如下所述:
  • permit_mynetworks允许IP为mynetworks的客户使用本邮件系统发送邮件。
  • permit_sasl_authenticated允许通过SMTP认证的用户向外发送邮件。
  • reject_unauth_destination当收件人地址不包括在Postfix的授权网络时,将拒绝发送该邮件。授权网络包括由inet_interfaces、mydestination、relay_domain等配置参数指定的域及其子域。

启用上述SMTP认证配置以后,只有通过认证的用户才允许向外域发送邮件,否则只能够给本域内的其他用户发送邮件。

(2)验证SMTP发信认证

2.1> 测试SMTP发信认证——telnet方式;

1)验证不使用SMTP认证的情况

使用telnet命令做发信测试时,并未提供用户名、密码等认证信息,这种方式表示不使用SMTP认证。若服务器要求进行SMTP认证,但客户端未使用认证,则发信时将会受到限制。例如,尝试yxz@topsecedu.com给外部邮箱tangyan@topsec.com发送邮件时,将会受到“Relay access denied”的拒绝发送反馈。

2)验证使用SMTP认证的情况

若要使用SMTP发信认证,在telnet命令中应改用“EHLO”(而不是HELO)来宣告本机地址,并通过“AUTH LOGIN”进行登录认证,然后才能够正常发送邮件。用户名、密码字串默认使用BASE64编码的加密格式,使用openssl工具可以生成。

3)测试过程中,建议直接复制上述加密字串进行使用,避免出现输入错误的情况。当通过SMTP认证以后,用户再次从yxz@topsecedu.com给外部邮箱tangyan@topsec.com发送邮件时,将会成功提交给Postfix服务器。

2.2> 测试SMTP发信认证

由于Foxmail不支持SMTP发信认证,所以这里就不做测试,如上所示:用telnet的方式已经成功验证

(3)部署并配置Squirrelmail

Squirrelmail是使用PHP开发的一套网页程序,可以与Postfix、Dovecot很好的协作,通过Web界面提供邮件发送、接收和管理操作。

3.1> 将SquirrelMail部署到网站目录;

将程序源码包、语言包释放后复制到网站目录中,其部署位置取决以访问路径,应根据实际情况确定。这里以httpd服务器为例,网站根目录对应为/var/www/html/,访问SquirrelMail系统的URL为http://mail.bebent.com/webmail/

3.2> 创建数据目录、附件目录

通过浏览器访问Web邮箱时需要提交邮件内容、上传附件等相关操作,因此需要创建相应的数据目录、附件目录,并确保网站运行用户对上述目录有写入权限。

3.3> 创建主配置文件config.php;

SquirrelMail的主配置文件为config.php,位于子目录config/中。主配置文件通常并不存在,需要参考默认配置手动创建。适当修改配置文件,设置界面语言、收发信服务器地址、数据目录和附件目录等相关信息。

$domain = ‘topsecedu.com’;

$smtpServerAddress = ‘localhost’;  //SMTP服务器地址

$smtpPort = 25;            //SMTP服务端口

$imap_server_type = ‘dovecot’;    //IMAP服务器类型

$imapPort = 143;           //IMAP服务端口

$data_dir = ‘/var/www/html/webmail/data/’; //数据目录的位置

$attachment_dir = ‘/var/www/html/webmail/attach/’; //附件目录的位置

上述配置内容中,收发信服务器的地址、端口号一般为默认,不需要修改。但数据目录、附件目录、界面语言等应根据需要进行调整。

3.4> 访问Web邮箱系统;

确认Web服务应经运行,通过浏览器访问http://mail.topsecedu.com/webmail/,可以看到SquirrelMail提供的Web邮箱登录界面,如图所示。使用正确的用户名、密码进行登录,即可使用Web邮件系统。

3.5> 使用Squirrelmail收发邮件;

成功登录Squirrelmail以后,可以看到一个典型的Web邮件系统操作界面,如图所示。通过此Web邮件系统,用户可以完成收信、发信等各种操作。

 

没有更多推荐了,返回首页