用linux系统搭建postfix邮件服务器,但是局域网可以实现互发邮件,不能给其他的公网邮箱互发邮件,求解

用linux系统搭建postfix邮件服务器,但是局域网可以实现互发邮件,不能给其他的公网邮箱互发邮件,求解,第1张

快速配置Postfix邮件服务器

Postfix最被人称道的地方就在于其配置文件的可读性很高。Postfix的主配置文件是/etc/postfix/maincf。

在maincf文件中,参数都是以类似变量的设置方法来设置的,这些参数的使用主要包含两部分的内容:

(1)定义和声明变量:例如definename = good-better-best。等号左边是变量的名称,等号右边是变量的值。

(2)引用变量:可以在变量的前面加上符号“$”来引用该变量,如:myname = $ definename(相当于definename = good-better-best)。

需要注意的是:等号两边需要有空格字符。此外,如果变量有两个以上的设置值,就必须用逗号“,”或者空格符“ ”将它们分开。

在熟悉了上述变量的定义和引用方法后,下面详细介绍如何安全、高效地配置Postfix服务器的相关选项。

1.设置Postfix服务监听的网络接口

默认情况下,inet_interfaces参数的值被设置为localhost,这表明只能在本地邮件主机上寄信。如果邮件主机上有多个网络接口,而又不想使全部的网络接口都开放Postfix服务,就可以用主机名指定需要开放的网络接口。不过,通常是将所有的网络接口都开放,以便接收从任何网络接口来的邮件,即将inet_interfaces参数的值设置为“all”,如下所示:

inet_interfaces = all

2.安全设置可接收邮件的主机名称或域名

mydestination参数非常重要,因为只有当发来的邮件的收件人地址与该参数值相匹配时,Postfix才会将该邮件接收下来。通过该选项的设置可以过滤掉许多没有经过认证和授权的邮件,从而节省服务器的存储空间,以及节省用户的邮件处理时间。

举一个简单的例子,用户可以将该参数值设置为如下:

accept_domain = testnet

mydestination = $accept_domain

这就表明无论来信的收件人地址是X@testnet(其中X表示某用户在testnet域中的邮件账户名),Postfix都会接收这些邮件。而除此之外的邮件,Postfix都不会接受。

3.安全设置可转发邮件的网络(IP设置)

有关安全设置可转发邮件的网络可以使用mynetworks参数来设置。可将该参数值设置为所信任的某台主机的IP地址,也可设置为所信任的某个IP子网或多个IP子网(采用“,”或者“ ”分隔)。

比如,用户可以将mynetworks参数值设置为172168960/24,则表示这台邮件主机只转发子网172168960/24中的客户端所发来的邮件,而拒绝为其他子网转发邮件:

mynetworks = 172168960/24

除了mynetworks参数外,还有一个用于控制网络邮件转发的参数是mynetworks-style,它主要用来设置可转发邮件网络的方式。通常有以下三种方式:

(1)class:在这种方式下,Postfix会自动根据邮件主机的IP地址得知它所在的IP网络类型(即A类、B类或是C类),从而开放的它所在的IP网段。

(2)subnet:这是postfix的默认值,postfix会根据邮件主机的网络接口上所设置的IP地址、子网掩码来得知所要开放的IP网段。

(3)host:在这种方式下,postfix只会开放本机。

通常,用户一般不需要设置mynetworks-style参数,而直接设置mynetworks参数。如果这两个参数都进行了设置,那么mynetworks参数的设置有效。

4.设置可转发邮件的网络(域名设置)

上面介绍的mynetworks参数是针对邮件来源的IP来设置的,而relay_domains参数则是针对邮件来源的域名或主机名来设置的,其实从原理上来说是一致的,不过是区分了IP地址和域名而已,不过,relay_domains还需要依赖DNS这个基础设施。

例如,用户可以将relay_domains参数值设置为testnet,则表示任何由域testnet发来的邮件都会被认为是信任的,Postfix会自动对这些邮件进行转发,如下所示:

relay_domains = testnet

那么,要使它能在实际网络中更好地转发邮件,还必须进行相应的DNS设置。那么,需要在该网络的DNS服务器上定义了一个主区域testnet,并在该区域配置文件中定义了以下记录:

//定义邮件服务器的IP地址

pattersontestnet IN  A  17216896254

//定义邮件服务器的别名

mailtestnet IN CNAME  pattersontestnet

//定义优先级别

testnet  IN MX  10 mailtestnet

上述记录只对邮件服务器进行了定义,还有诸如SOA、NS等的定义,在这里就不再赘述。

配置Postfix使用SMTP安全认证

Postfix默认不会对外开放转发功能,而仅对本机(localhost)开放转发功能。但是,在实际应用中,必须在Postfix主配置文件中通过设置mynetworks、relay_domains参数来开放一些所信任的网段或网域,否则该邮件服务器几乎没有什么用处。在开放了这些所信任的网段或网域后,还可以通过设置SMTP认证,对要求转发邮件的客户端进行用户身份(用户账户名与密码)验证。只有通过了验证,才能接收该用户寄来的邮件并帮助转发。同样,Postfix中目前比较常用的SMTP认证机制是通过Cyrus SASL包来实现的。

默认情况下,Postfix并没有启用SMTP认证机制。要让Postfix启用SMTP认证,就必须对Postfix的主配置文件/etc/postfix/maincf进行修改。用户需要在maincf文件中添加如下有关SMTP认证的设置部分:

smtpd_sasl_auth_enable = yes

smtpd_sasl_local_domain = ''

smtpd_recipient_restrictions = permit_mynetworks

permit_sasl_authenticated, reject_unauth_destination

broken_sasl_auth_clients=yes

smtpd_client_restrictions = permit_sasl_authenticated

smtpd_sasl_security_options = noanonymous

其中,每个选项的具体含义如下:

(1)smtpd_sasl_auth_enable:指定是否要启用SASL作为SMTP认证方式。默认不启用,这里必须将它启用,所以要将该参数值设置为yes。

(2)smtpd_sasl_local_domain:如果采用Cyrus-SASL版进行认证,那么这里不做设置。

(3)smtpd_recipient_restrictions:表示通过收件人地址对客户端发来的邮件进行过滤。通常有以下几种限制规则:

permit_mynetworks:表示只要是收件人地址位于mynetworks参数中指定的网段就可以被转发邮件。

permit_sasl_authenticated:表示允许转发通过SASL认证的邮件。

reject_unauth_destination:表示拒绝转发含未信任的目标地址的邮件。

(4)broken_sasl_auth_clients:表示是否兼容非标准的SMTP认证。有一些Microsoft的SMTP客户端采用非标准的SMTP认证协议,只需将该参数设置为yes就可解决这类不兼容问题。

(5)smtpd_client_restrictions:表示限制可以向Postfix发起SMTP连接的客户端。如果要禁止未经过认证的客户端向Postfix发起SMTP连接,则可将该参数值设置为permit_sasl_authenticated。

(6)smtpd_sasl_security_options:用来限制某些登录的方式。如果将该参数值设置为noanonymous,则表示禁止采用匿名登录方式。

在完成上述设置后,必须使用

/etc/initd/postfix reload

重新载入配置文件,或使用

/etc/initd/postfix restart

重新启动Postfix服务,以使该配置生效。这两个命令的具体使用需要根据不同的Linux版本来选用。

此外,由于当Postfix要使用SMTP认证时,会读取/usr/lib/sasl2/smtpdconf文件中的内容,以确定所采用的认证方式,因此如果要使用saslauthd这个守护进程来进行密码认证,就必须确保/usr/lib/sasl2/smtpdconf文件中的内容为:

pwcheck_method: saslauthd

一、概述:

在配置邮件服务器之前,先解释几个概念。

通常使用Email都很容易,但是Internet的邮件系统是通过几个复杂的部分连接而成的,对于最终用户而言,我们熟悉的Outlook,Foxmail等都是用来收信和发信的,称之为MUA:Mail User Agent,邮件用户代理。

MUA并非直接将邮件发送至收件人手中,而是通过MTA:Mail Transfer Agent,邮件传输代理代为传递,Sendmail和Postfix就是扮演MTA的角色。

一封邮件从MUA发出后,可能通过一个或多个MTA传递,最终到达MDA:Mail Delivery Agent,邮件投递代理,邮件到达MDA后,就存放在某个文件或特殊的数据库里,我们将这个长期保存邮件的地方称之为邮箱。

一旦邮件到达邮箱,就原地不动了,等用户再通过MUA将其取走,就是用Outlook,Foxmail等软件收信的过程。

所以一封邮件的流程是:

发件人:MUA --发送--> MTA -> 若干个MTA -> MTA -> MDA <--收取-- MUA:收件人

MUA到MTA,以及MTA到MTA之间使用的协议就是SMTP协议,而收邮件时,MUA到MDA之间使用的协议最常用的是POP3或IMAP。

需要注意的是,专业邮件服务商都有大量的机器来为用户服务,所以通常MTA和MDA并不是同一台服务器,因此,在Outlook等软件里,我们需要分别填写SMTP发送服务器的地址和POP3接收服务器的地址。

Linux系统下邮件服务器的搭建(Postfix+Dovecot)

对于网站来说,发送各种例如注册通知的邮件是很基本的一个需求,之前我一直用的是腾讯的企业邮箱,感觉挺方便的,直接可以绑定QQ邮箱接收邮件,网站配置一下SMTP也就可以发出邮件。

但是在前几天由于有重要信息需要立即通知用户,所以选择了群发邮件的方式。在当我以为一切都是辣么完美的时候,陆续有用户过来问我什么情况,我都会跟他们说请查收邮件,但是有好几个人说并没有任何

邮件,于是我试着再发一次,结果返回了错误提示。在网上找了下原因,后来看到这个:各大免费邮箱邮件群发账户SMTP服务器配置及SMTP发送量限制情况,才知道是因为发信数量限制了。

所以只好另寻出路了,然后我在知乎上面找到了很多个提供邮件发送的服务商,大概有这些:SendGrid、MailChimp、Amazon SES、SendCloud、Mailgun等等,在看了不少人的建议之后,我选择了Mailgun。

Mailgun注册和配置都挺简单,很快我就成功的发出了第一封邮件,怀着这封欣喜,我又发送了几封邮件,可是悲剧发生在第三封邮件,Mailgun后台有详细的发送记录,这个非常不错,在后台我看到我的邮件被拒收了,原因大概是该服务器IP的发信频率超过腾讯邮箱限制。所以这里就涉及到IP的问题,目前第三方的邮件发送服务普遍都是共享IP(后面还试过SendCloud、),而共享IP并不能确定是否已经达到接收方的数量限制,一旦达到了就无法再发送。这就是说还需要使用独立IP才能保证邮件有较高的到达率,接着就看了各家的独立IP价格,一般都是二十几甚至四十几美刀一个月,这对于我们这种小站长邮件需求不高的来说确实有点贵,买台VPS都不用这个价吧。

经过上面这些折腾,也算明白了如果要想顺畅的发出邮件的话,除了花钱,就只有自己搭建一个邮件服务器了。

好了,下面开始进入正题,教你搭建一个简单的邮件服务器。

用于搭建的服务器信息

阿里云 Centos 65 32位

Postfix-2812targz      Postfix MTA(邮件传输代理)

Dovecot-218targz      IMAP 和 POP3 邮件服务器

Postfixadmin-235targz    采用PHP编写的开源WEB邮箱及域名账号管理工具

Roundcubemail-081targz  采用php编写的开源IMAP邮件WEB客户端

安装过程

1安装Postfix

yum -y install postfix

安装完成还需要替换系统自带的sendmail:

rpm -e sendmail

或者

yum remove sendmail

修改MTA(默认邮件传输代理)

alternatives --config mta

然后直接回车即可。

检查一下是不是已经设置成功了。

alternatives --display mta

第一行可以看到mta的状态。 例如:mat - status is manual

2安装Dovecot

yum -y install dovecot

3配置Postfix

编辑/etc/postfix/maincf,可以下载下来修改,也可以使用vi进行编辑:

vi /etc/postfix/maincf

修改如下:

# 75行: 取消注释,设置hostname

myhostname = maillomume

# 83行: 取消注释,设置域名

mydomain = lomume

# 99行: 取消注释

myorigin = $mydomain

# 116行: 修改

inet_interfaces = all

# 119行: 推荐ipv4,如果支持ipv6,则可以为all

inet_protocols = ipv4

# 164行: 添加

mydestination = $myhostname, localhost$mydomain, localhost, $mydomain

# 264行: 取消注释,指定内网和本地的IP地址范围

mynetworks = 127000/8, 10000/24

# 419行: 取消注释,邮件保存目录

home_mailbox = Maildir/

# 571行: 添加

smtpd_banner = $myhostname ESMTP

# 添加到最后

# 规定邮件最大尺寸为10M

message_size_limit = 10485760

# 规定收件箱最大容量为1G

mailbox_size_limit = 1073741824

# SMTP认证

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

smtpd_sasl_local_domain = $myhostname

smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

修改好了之后使用/etc/rcd/initd/postfix start开启postfix,使用chkconfig postfix on将postfix开机启动。

4配置Dovecot

修改如下:

[root@mail ~]# vi /etc/dovecot/dovecotconf

# 26行: 如果不使用IPv6,请修改为

listen =

[root@mail ~]# vi /etc/dovecot/confd/10-authconf

# 9行: 取消注释并修改

disable_plaintext_auth = no

# 97行: 添加

auth_mechanisms = plain login

[root@mail ~]# vi /etc/dovecot/confd/10-mailconf

# 30行: 取消注释并添加

mail_location = maildir:~/Maildir

[root@mail ~]# vi /etc/dovecot/confd/10-masterconf

# 88-90行: 取消注释并添加

# Postfix smtp验证

unix_listener /var/spool/postfix/private/auth {

mode = 0666

user = postfix

group = postfix

}

[root@mail ~]# /etc/rcd/initd/dovecot start

Starting Dovecot Imap:     [ OK ]

[root@mail ~]# chkconfig dovecot on

到这里,我们的邮件服务器就已经搭建成功了。

5域名解析

最后别忘了还需要进行域名解析工作。

添加一个子域名mail,A记录解析到服务器IP。

再添加一个MX记录,主机记录为空,记录值为上面解析的二级域名maillomume,优先级10。

注意:解析生效可能需要一段时间。

6防火墙设置

/sbin/iptables -A INPUT  -p tcp --dport 25 -j ACCEPT

/sbin/iptables -A INPUT  -p tcp --dport 110 -j ACCEPT

/sbin/iptables -A INPUT  -p tcp --dport 143 -j ACCEPT

突破封锁25口的转发

/sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10025 -j REDIRECT --to-ports 25

7邮箱使用

一切都弄好以后,就可以使用Foxmail等第三方软件来收发邮件了。在这里需要说一下,系统用户就是邮件的用户,例如root,就是一个邮箱用户,邮箱是root@domaincom,密码就是root的密码,所以需要创建用户,只要使用useradd创建用户,再使用passwd设置密码。

好了,假如我们创建一个admin的用户:

# 创建用户

useradd admin

#设置密码,会要求输入两次密码

passwd admin

接下来登录Foxmail,如图:

点击创建,进入:

这里需要注意,邮件账号是admin,并不是邮箱,另外我们没有配置SSL,所以也不要勾选。 接下来点击创建,如果一切正常的话,你已经成功了。

Linux什么系统的?如果是AS55的话那我现在在下面打的就是=

=

十分还真不好拿啊~建议LZ加点分-

-看在写的那么辛苦的份上

物理机IP:19216810100

域名:wwwaiycom

首先先设置DNS

mkdir

/mnt/cdrom

mount

-t

iso9660

/dev/cdrom

/mnt/cdrom

(挂载ISO因为我用的是虚拟机=

=没有光盘)

cd

/mnt/cdrom/Server/

rpm

-ivh

caching-chroot-933-7el5i386rpm

rpm

-ivh

bind-

vim

/etc/namerfc1912zones

=

=里面配置文件太长了直接说哪一行吧-

-反正都差不多~只要是AS55的话

15行:localdomin修改为aiycom

17行:localdomainzone改为aiycomzone

27行:00127改为本地前三位倒过来10168192

29行:namelocal改为19216810zone

输入Shift+;

然后输入wq!强制保存并退出

vim

/etc/namedcachingnameserverconf

15行127001改为any

23行localhost改为any

32行、33行localhost改为any

cd

/var/named/chroot/var/named

cp

-p

localdomainzone

aiycomzone

cp

-p

namedlocal

19216810zone

vim

aiycomzone

在最后加mail

(TAB键对齐就好了)

IN

A

19216810100

aiycom

IN

MX

5

mailaiycom

同样

输入Shift+;

然后输入wq!强制保存并退出

vim

19216810zone

同样在最后加100

IN

PTR

mailaiycom(注意空格同样是tab)

输入Shift+;

然后输入wq!强制保存并退出

(=

=下面的话这两句忽略掉了太麻烦了)

ln

-s

aiycomzone

/var/named/

ln

-s

1921683zone

/var/named/

vim

/etc/resolvconf

nameserver

19216810100

service

named

restart

试试

nslookup

mailaiycom

=

=DNS打完然后MAIL等下继续先提交保存=

=

-

-现在继续

-

-继续挂载省略了直接安装

cd

/mnt/cdrom/Server

rpm

-ivh

m4-

rpm

-ivh

sendmail-

(一开始安装系统时候我没安装所以现在挂载~如果一开始有选sendmail的话54掉就可以了=

=再次~)

前面其实就设置好了mail服务的DNS

cd

/etc/mail

vim

local-host-names

在最下面输入aiycom

vim

sendmailmc

116行127001改为0000

m4

sendmailmc

>

sendmailcf

cd

/etc/initd

/saslauthd

restart

/sendmail

restart

/dovecot

restart

useradd

aiy

建立aiy用户

passwd

aiy

123456

123456

用户aiy密码设置为123456

mail

aiy@aiycom

123

(标题)

123

(内容)

ctrl+d

然后信息就发完了

TT终于轮到测试了~

su

aiy

切换到aiy用户

mail

查看aiy用户的mail

=

=这样就完了现在发现aiy里面有份root邮件吧TT

还能输入

8917

字-

-不知不觉打了很多字了=

=

我QQ

1842534312不懂可以问我

-0-可以转载~但是请保留全部

最好用linux。linux操作系统比windows稳定,能威胁到linux的病毒很少,而且不需要老是给linux系统打漏洞。

开源的linux邮件系统很多,但都需要你自己维护,开源的linux邮件系统维护难度比windows界面化要难,建议你采用商业版的linux环境下的邮件系统,例如turbomail,操作界面也是采用webmail形式的,很容易维护和管理!

搭建一套邮件系统其实并不是一件庞大的工程,一套邮件系统的搭建构成可以分为以下三个部分:邮件服务器硬件、域名和固定ip地址、邮件服务器软件,搭建的便捷与否决定于邮件服务器软件的易用程度。(本文章以turbomail为例进行邮件系统的搭建说明)

一,邮件服务器硬件:最低配置要求piii以上,512m内存,硬盘在40g以上。

二,域名和ip地址:需要有独立的域名,并有更改mx记录的权限,内网用户可以使用自定义域名;需要有互联网固定ip,没有固定ip采用动态ip绑定域名软件也可。

三,邮件服务器软件:目前市场上的邮件服务器软件很多,比如exchange, mdaemon,imail,turbomail等,价格不等,质量也不等,售后服务也不等,建议用户综合比较价格,质量和技术服务,并索取试用期进行测试后进行选择(本文章以turbomail为例进行邮件系统的搭建说明)

搭建步骤:

一,在购进了服务器硬件后首先是要安装操作系统,建议用户使用linux操作系统,非常稳定,在熟悉代码后操作也不麻烦,邮件服务器最关键的就是稳定性,有了好的操作系统就有了稳定的保障。

二,域名请向域名供应商申请,国内比较大的有万网和新网,域名供应商提供域名解析的服务;mx记录可以通过域名供应商提供的管理界面进行修改。

三,有了这以上两个前提后就可以安装邮件服务器软件了。不同的邮件服务器软件的安装方法和简易度不同,我以国内最易安装的turbomail邮件服务器为例讲解安装过程:

1,下载安装包,请上官网直接下载。

2a,windows系统:双击下载的安装包,按照安装提示完成安装

3a,重启电脑

4a,电脑重启后,自动出现turbomail控制台,点击“运行mail服务器”和“运行webmail服务器”,启动邮件服务程序

1b,linux/solaris/aix/hp-ux/freebsd系统下:以root用户登录,解压安装包,生成turbomail安装目录,解压命令为:#tar -xvzfturbomail_linux_yyy_xxxtgz

(注意:turbomail安装包必须放在根目录上)

2b,启动turbomail server,进入turbomail目录,执行starttmsh,命令为:#/starttmsh

3b,启动webmail服务,进入进入 turbomail/web/bin 目录,执行startupsh。

命令为:#/startupsh

4b,启动反垃圾服务,进入 turbomail/sa目录,执行sa_serversh。命令为: #/sa_serversh

四,邮件系统已经安装完毕,登录http://服务器ip:8080/maintloginjsp 进入管理员界面,添加域和用户后即可正式使用邮件系统了。

这样,您的邮件系统就已经搭建完毕,之后就需要做一些邮件服务器软件的细节性能配置工作,比如用户邮箱大小控制,收发邮件权限控制,反垃圾反病毒功能设置等等,这些就需参考邮件服务器软件供应商的使用说明书和咨询技术工程师了。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 用linux系统搭建postfix邮件服务器,但是局域网可以实现互发邮件,不能给其他的公网邮箱互发邮件,求解

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情