㈠ 在linux下如何配置postfix与dovecot才能使客户端outlook成功连接到电子邮件服务器上需要详细步骤,谢谢
1.配置
a. /etc/postfix/main.cf
配置mydomian(域名),myhostname,myorigin,inet_interfaces=all(其他关闭),mynetworks-style,mydestination,mynetworks,relay_domains,home_mailbox
配置主机名和域名 mydomain myhostname
设置由本机寄出的邮件所使用的域名或主机名称 myorigin
设置postfix服务监听的网络接口 inet_interfaces
设置可接受邮件的主机名称和域名 mydestination
设置可以转发哪些网络的邮件 mynetworks
设置可以转发哪些网域的邮件 relay_domains = sina.cn
b.验证:
telnet localhost 25
mail from:[email protected](发件人任意)
rcpt to:[email protected](收件人创建的名字和设置好的域名)
data(输入信息)
.(结束输入)
quit(离开)
2.配置dovecot
yum install -y dovecot
a.配置文件:a. vim /etc/dovecot/dovecot.conf (protocols = imap pop3)
b. vim /etc/dovecot/conf.d/10-auth.conf
(disable_plaintext_auth = no)
c. vim /etc/dovecot/conf.d/10-mail.conf
(mail_location = maildir:~/Maildir)地址要和postfix服务器配置文件中的home_mailbox地址一致
d. vim /etc/dovecot/conf.d/10-ssl.conf
(ssl = yes)
e. vim /etc/pam.d/dovecot (查看pam认证文件)
b.验证:
[root@CentOS6 ~]# telnet localhost 110
Trying ::1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user user1
+OK
pass 123
+OK Logged in.
list
+OK 4 messages:
1 472
2 458
3 464
4 464
.
retr 3
+OK 464 octets
Return-Path: <[email protected]>
X-Original-To: [email protected]
Delivered-To: [email protected]
3.邮件客户端的配置
a. 关闭防火墙,selinux
b. 设置收发邮件服务器
我这里是用的foxmail 看我的截图
这样就可以了
㈡ 141Linux 安装及配置邮件服务器
效果截图
Sendmail :sendmail 是最古老的 MTA(Mail Transfer Agent,电子邮件系统)之一,最早它诞生的时候,Internet 还没有被标准化,当时主机之间使用的是 UUCP 技术来交换邮件。它被设计得比较灵活,便于配置和运行于各种类型的机器。
Qmail :qmail 是新生一代的 MTA 代表,它以速度快、体积小、易配芦巧置安装等特性而著称。作者 D.J.Bernstein 是一个数学教授,富有传奇色彩。他于 1995 年开发 qmail,1996 年发布 0.70 版,并使用了多种当时比较先进的 技术,包括 Maildir,与 sendmail 单个 binary 不同的模块化设计,权限分离,以及使用了大量由他编写的配套工具,如 daemontool,ucsip-tcp 等。qmai 迅速成为了 Internet 上最有名的 MTA,使用者众。
postfix :postfix 如今已经独树一帜,流水线、模块化缺灶的设计,兼顾了效率和功能。灵活的配置和扩展,使得配置 postfix 变得富有趣味。其主要的特点是速度快、稳定,而且配置/功能非常强大,并和 sendmail 类似,提供了与外部程序对接伏哗扮的 API/protocol。尤其是配置部分,postfix 另一个优势是至今依然保持活跃的开发工作,而且稳步发展,适合高流量大负载的系统,扩充能力较强。本实验也是基于 postfix 服务器软件来实现。
邮件服务器基本的工作原理
MUA(Mail User Agent):向外发送邮件,以及提供用户浏览与编写邮件的功能。
MTA(Mail Transfer Agent):(可以理解为 smtpd 服务器)帮忙将用户的邮件传递出去或接收进来。
MDA(Mail Delivery Agent):将接收下来的邮件存放到对应用户邮筒当中的程序。通过分析 MTA 所收到邮件的表头或内容,来判断此邮件是属于哪个用户,然后决定将此邮件投递给哪个用户的邮筒里。
MRA(Mail Retrieval Agent):通过 MRA 服务器提供的邮政服务协议(POP)来接收自己的邮件。
邮件中继:
SMTPD 要支持邮件路由功能,需要打开 Open Relay 开放式中继。
SMTPD 是根据收件人判断邮件是否需要中继,而且只给指定的客户端中继。
注:当 DNS 上存在多个 MX 记录的主机这时就是根据 DNS 的邮件级判断了。DNS 上定义的值越小,其优先级越高。辅助交换器接受到邮件并不能保存邮件。而是这个辅助交换器会等到主邮件交换器空闲的时候把代替它接受下来的邮件在转给主邮件交换器。所以任何邮件处理都是主邮件交换器处理的。所以我们实际情况下,如果有 2 台服务器做邮件交换器,性能比较高的应该为主的。
安装配置过程中,postfix 通过 Internet 发送和接收 email,并存储在用户邮箱里。同时客户也可以通过 IMAP 或者 POP3 恢复他们的邮件。其中的客户认证是通过 Courier Authdaemon 模块的。下图表示出了这个过程:
出现安装界面时,首先按下 <tab> 键切换到确定,然后按下回车。
安装 postfix 的时候会问你安装的服务器类型,对于我们的需要,我们选择默认的 Internet Site,这是最符合我们的服务器类型,然后按下回车确认。
使用 vim 编辑配置文件:
大概在第 31 行,编辑 myhostname,修改为 myhostname = shiyanlou.com。
然后我们把alias_map参数修改为 alias_maps = hash:/etc/postfix/virtual,之后会讲解virtual里面填写什么。
之后设置mynetworks段落,它定义可以使用这台服务器的主机,我们这里就用默认的本地地址。你也可设置为其他地址。
编辑完成后按下 Esc 键,输入 :wq 保存退出。
此命令创建了一个用户 master,其中 -d 和 -m 选项用来为登录名 master 产生一个主目录 /usr/master(/usr 为默认的用户主目录所在的父目录)。
我们编写之前设置的 virtual 文件,这些邮箱地址是用来传送邮件的。
在这个文件里,我们将设置一个表,对应相关的邮件地址。
完成后保存关闭文件。
我们可以通过调用下面这个命令来实现我们的映射:
接着我们重启 postfix,完成我们的修改:
我们可以用 shiyanlou 这个账号给 master 这个账号发一封邮件。首先我们需要安装一个命令行收发邮件的软件 mailutils 。
写一封邮件
输入如下内容:
其中 -s 参数是指邮件的标题,< 后面是将要发送的邮件内容从 hello.txt 中重定向。这个命令如果正确执行不会有输出。
然后我们切换到 master 用户,查看我们的邮件。
按下回车建可以查看邮件内容,输入 quit 即可退出邮箱。
Linux 邮件服务器原理介绍,编译安装 Postfix 实现本地的邮件服务
Ubuntu 服务器指南-邮件服务-Postfix
how-to-run-your-own-mail-server-with-mail-in-a-box-on-ubuntu-14-04
㈢ linux邮件服务器搭建
EMOS很简单噢,就是CENTOS这个LINUX操作系统自带的安装组件,只要配置少量的配置 ,都是用RPM包安装,非常快捷。
㈣ LINUX邮件服务器搭建
1. 用以下命令查看系统是否安装了sendmail:
[root@mail /root]# rpm – |grep sendmail
sendmail-8.11.0-8
2. 卸载sendmail:
[root@mail /root]# rpm -e sendmail –nodeps
3. 用以下命令杀死运行中的sendmail进程:
[root@mail /root]# killall sendmail
如果系统提示:
sendmail: no process killed
则说明当前系统中没有sendmail进程。
4. 安装postfix:
[root@mail /root]# rpm -ivh postfix-20010228release-2.i386.rpm
若已经安装,则此步可以省略。(注:安装时最好用rpm包,会自动创建postfix用户和postfix组)
5. 安装imap
rpm –ivh /mnt/cdrom/RedHat/RPMS/ imap-4.7c2-12.rpm
imap使pop3有效,即打开110端口。(注:安装时最好用rpm包)
若已经安装,则此步可以省略。
6. 检查系统中是否安装了cyrus-sasl
执行以下命令查看系统中是否安装了cyrus-sasl:
rpm –qa |grep cyurs
如果您看到以下提示,则说明已经安装了cyrus-sasl
[root@test bye2000]# rpm -qa |grep sasl
cyrus-sasl-devel-1.5.24-17
cyrus-sasl-1.5.24-17
否则,请用rpm –ivh 命令先安装所需sasl-cyrus包。
7.修改postfix用户
同时应该让该用户不能登录到系统,也即不为该用户指定可执行的登录外壳程序和可用
的用户宿主目录。
编辑/etc/passwd文件中的相关条目如下所示:
postfix:x:89:89::/no/where:/no/shell [编辑后,只修改蓝色部分就可以了]
即:修改用户的Home directory和Shell 参照 /etc/passwd文件
8.编辑postfix的主要配置文件/etc/postfix/main.cf,根据需求只需修改以下几个参数:
1)mydomain
指明你的域名,在这里我们指定:
mydomain = xx.com
2)myorigin
myorigin参数指明发件人所在的域名。如果你的用户的邮件地址为[email protected],则该参数指定@后面的域名。在这里我们指定:
myorigin = $mydomain
3)inet_interfaces
inet_interfaces = all 监听所有端口
4)mydestination
mydestination参数指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix
系统要接收什么样的邮件。通常与myorigin一样:
mydestination = $mydomain
5)mynetworks_style
设置网络类型,我们指定:
mynetworks_style = subnet
6)ynetworks
定义可以使用的此smtp服务器发信的客户ip地址,因为公司的ip范围已知,所以我们
指定:
mynetworks = 192.168.1.0/24
注:此项可根据情况而定,主要是指定ip范围,假如公司的ip划分是按照网段来的,例如:10.10.1.0~10.10.1.9,10.10.3.0~10.10.3.9等等更细。根据需要,该项可以不设置。
7)SMTP的配置
为了告诉postfix采用sasl来进行SMTP的用户认证,我们必须在/etc/postfix/main.cf文件的最后添加以下几行:
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
说明如下:
smtpd_sasl_auth_enable:告诉SMTP客户,该SMTP服务器需要进行用户认证。
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
仅仅中继通过SMTP认证的客户端邮件,以及接收本postfix为最后一站的邮件。
broken_sasl_auth_clients = yes
有一些Microsoft 的SMTP客户端,比如Outlook Express 4.X采用的是非标准的SMTP认证协议,将该选项设置为yes可以解决这类不兼容问题。
smtpd_sasl_security_options = noanonymous
控制本地SMTP认证所采用的机制,这里是允许任何非匿名认证方法。
9.配置SASL
进入/usr/lib/sasl/目录,用touch新建这样一个文件:
[root@test sasl]# touch smtpd.conf
在该文件中加入以下内容:
[root@test sasl]# more smtpd.conf
pwcheck_method:pam
也就是指定通过PAM来进行用户认证。
10.配置PAM
进入/etc/pam.d/目录,用touch新建这样一个文件:
[root@test pam.d]# touch smtp
在该文件中加入如下内容:
[root@test pam.d]# more smtp
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
也即和/etc/pam.d/pop文件的内容是一致的。
11.修改/etc/shadow文件权限
因为PAM最终要去读取/etc/shadow文件的内容来进行用户认证,但是/etc/shadow文件
权限是设置为只有root用户可以读写,而我们的postfix是运行在postfix用户权限之下,所以我们要合理的设置/etc/shadow文件权限,以便让pam可以读取其内容。
执行以下命令,让root组也可以读取shadow:
[root@test /etc]# chmod 640 /etc/shadow
然后再将postfix用户加入root组,采用以下命令:
[root@test /etc]# usermod -G root postfix
12.编辑postfix的主要配置文件/etc/postfix/master.cf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
这里开始
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
这里结束
#628 inet n - n - - qmqpd
把我标的注释部分去掉即可。
13.配置pop3
RedHat7.0已经使用xinetd代替了以前的inetd,为了使pop3服务启动,我们编辑
/etc/xinetd.d/ipop3文件,将其中的disable = yes改为disable = no 以便启动pop3
服务。
为了使改动生效,执行以下命令:
/etc/rc.d/init.d/xinetd reload
14.启动postfix
执行以下命令启动postfix:
/etc/rc.d/init.d/postfix start
这样,一个支持SMTP认证的postfix邮件服务器就配好了。
㈤ postfix 的常见功能和配置有哪些
postfix是一种MTA,用来收发邮件
service:postfix
port:25
proto:smtp
datafile:/var/spool/mail/user
queue:/var/spool/postfix
log:/var/log/maillog
paraments: http://www.postfix.org/postconf.5.html
configuration:/etc/postfix/main.cf(主要配置如下参数)
myhostname:默认为主机名(可自己写)
mydomain:默认为主机的域(...)
myorigin:当发信时,如果不写@domain,默认用该变量值补齐,默认为mydomain
mydestination:该变量决定什么样后缀的邮件到达该MTA的时候会被该MTA接受
inet_interfaces:监听哪个网卡
relayhost:找一个帮忙转发的MTA,可以是[IP],也可以是hostname,如果hostname写在[]中,可以避免查dns
mynetworks:信任的网络,如果信任,可以帮忙转发.如果不设置,默认使用该机器网卡的网段(所有网卡)
local_transport=error:local delivery disabled //本地不接受邮huh件
备注:修改hostname的时候,修改网卡配置的时候,会改变/etc/resolv.conf文件的内容,影响DNS的正常使用,在/etc/NetworkManager/NetworkManager.conf中添加dns=none就会不受影响。
【relayhost】
relayhost参数指定了下一个MTA,自己可以不做DNS解析,将邮件发给RELAYHOST,RELAYHOST帮忙解析
relayhost=[IP]/hostname
hostname必须可以解析,默认的解析方法时DNS,如果想要用/etc/hosts解析,需要修改一个参数
smtp_host_lookup,该参数的值可以时dns(只有dns);native(只用/etc/nsswitch.conf);dns,native(优先dns)
【transport】
transport:作用和relayhost一样,但是不是无条件帮忙转发,有域的限定
/etc/postfix/main.cf transport_maps = hash:/etc/postfix/transport(文件可以随意,这个时默认的)
domain smtp:[IP]:25
生成数据库:postmap /etc/postfixe/transport 生成数据库 transport.db
备注:transport的优先级 > mydestination > relayhost
备注:transport的数据库表有好几种格式,postconf -m 可以查看支持的数据库表格式,常见的有hash,regexp
如果为regexp格式,transport文件中的转发格式则不同:
/filter/ :relayhost //filter中的“.”符号要加转义符号
【queue】
当邮件发不出去的时候,会将邮件留在queue里,/var/spool/postfix下
mailq查看queue中的邮件
postqueue -f 尝试重新发送queue中的邮件
postqueue -i q_id 把指定的邮件再发送一次
postsuper -d All 删除queue中的所有邮件
postsuper -d ALL queuename 删除特定queue内的所有邮件
postconf 查看主配置文件的参数
postconf -d 查看主配置文件参数的默认值
关于邮件在queue中的发送的几个参数:
queue_run_delay:一个检测queue的程序自服务启动后运行的时间间隔
maximal_backoff_time:在检测程序跑的时候,queue中的邮件超过该时间的会被重新发送
minimal_backoff_time:当超过最小值还没有发送成功,发送的时间会变成*2,一直到最大的间隔
maximal_queue_lifetime:在queue中存在的最长时间,超过被删除(系统认为该邮件发布出去)
【telnet】
一种测试MTA是否能正常通信的方式
telnet ****** 25 (某台MTA的25号端口)
ehlo *** //表明身份
mail from: user@domain //邮件来源
rcpt to: user@domain //邮件发往
data //之后输入邮件的内容
subject: //主题,下面就可以输入邮件的正文
【alias】
/etc/aliases里可以定义别名,到达MTA本地的邮件会走这个文件,
例如:定义了a1:root,创建新的数据库,newaliases 则发给a1的邮件会存在/var/mail/root中
【virtual aliases domain】
虽然感觉并没有什么卵用,但是还是能起到一点点一个MTA上面可以接受多个域的邮件,存放地方还不会混乱的一个机制
/etc/postfix/main.cf :
virtual_alias_domains=domain1,domain2
virtual_alias_map = hash:/etc/postfix/virtual(默认为该文件,可以修改)
/etc/postfix/virtual
user@domain1 user1(local user) //发给某个域的某个用户的邮件存在/var/spool/mail/user1中
【virtual mailbox domain】
/etc/postfix/main.cf
virtual_mailbox_domains = domain
virtual_mailbox_base = /var/mail/vhosts //发过来的邮件会基于这个目录
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100 //系统默认值,如果下面两个参数小于该值,就会报错
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
/etc/postfix/vmailbox
user@domain file //发给该用户的邮件会存在该文件里
user@domain dir //发给该用户的邮件会存在该目录下的一个文件里,这样,每一封邮件都有一个文件
postmap /etc/postfix.vmailbox
chown 5000:5000 存放邮件的上层目录
【sasl】
加在MTA外面的一层认证,当用我这个MTA帮忙转发的时候,就像RELAYHOST和transport中被信任以外,还可以时通过验证的,有该MTA的user去做验证
1.install cyrus-sasl,cyrus-sasl-plain
2. /etc/postfix/main.cf:
smtpd_sasl_path = smtpd //默认值
3./etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN //默认就有
4. /etc/sysconfig/saslauthd:
MECH=shadow/pam
5. saslauthd restart
6.# testsaslauthd -u xxx -p xxx //用用户和密码测试sasl是否成功
7./etc/postfix/main.cf:
smtpd_sasl_auth_enable = yes //sasl在postfix中生效
broken_sasl_auth_clients = yes //兼容微软的outlook
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated,reject_unauth_destination
8.# echo -ne '