用linux系统搭建postfix邮件服务器,但是局域网可以实现互发邮件,不能...
发布网友
发布时间:2022-04-25 16:15
我来回答
共2个回答
热心网友
时间:2022-04-08 20:12
快速配置Postfix邮件服务器
Postfix最被人称道的地方就在于其配置文件的可读性很高。Postfix的主配置文件是/etc/postfix/main.cf。
在main.cf文件中,参数都是以类似变量的设置方法来设置的,这些参数的使用主要包含两部分的内容:
(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 = test.net
mydestination = $accept_domain
这就表明无论来信的收件人地址是X@test.net(其中X表示某用户在test.net域中的邮件账户名),Postfix都会接收这些邮件。而除此之外的邮件,Postfix都不会接受。
3.安全设置可转发邮件的网络(IP设置)
有关安全设置可转发邮件的网络可以使用mynetworks参数来设置。可将该参数值设置为所信任的某台主机的IP地址,也可设置为所信任的某个IP子网或多个IP子网(采用“,”或者“ ”分隔)。
比如,用户可以将mynetworks参数值设置为172.168.96.0/24,则表示这台邮件主机只转发子网172.168.96.0/24中的客户端所发来的邮件,而拒绝为其他子网转发邮件:
mynetworks = 172.168.96.0/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参数值设置为test.net,则表示任何由域test.net发来的邮件都会被认为是信任的,Postfix会自动对这些邮件进行转发,如下所示:
relay_domains = test.net
那么,要使它能在实际网络中更好地转发邮件,还必须进行相应的DNS设置。那么,需要在该网络的DNS服务器上定义了一个主区域test.net,并在该区域配置文件中定义了以下记录:
//定义邮件服务器的IP地址
patterson.test.net. IN A 172.168.96.254
//定义邮件服务器的别名
mail.test.net. IN CNAME patterson.test.net.
//定义优先级别
test.net. IN MX 10 mail.test.net.
上述记录只对邮件服务器进行了定义,还有诸如SOA、NS等的定义,在这里就不再赘述。
配置Postfix使用SMTP安全认证
Postfix默认不会对外开放转发功能,而仅对本机(localhost)开放转发功能。但是,在实际应用中,必须在Postfix主配置文件中通过设置mynetworks、relay_domains参数来开放一些所信任的网段或网域,否则该邮件服务器几乎没有什么用处。在开放了这些所信任的网段或网域后,还可以通过设置SMTP认证,对要求转发邮件的客户端进行用户身份(用户账户名与密码)验证。只有通过了验证,才能接收该用户寄来的邮件并帮助转发。同样,Postfix中目前比较常用的SMTP认证机制是通过Cyrus SASL包来实现的。
默认情况下,Postfix并没有启用SMTP认证机制。要让Postfix启用SMTP认证,就必须对Postfix的主配置文件/etc/postfix/main.cf进行修改。用户需要在main.cf文件中添加如下有关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/init.d/postfix reload
重新载入配置文件,或使用
/etc/init.d/postfix restart
重新启动Postfix服务,以使该配置生效。这两个命令的具体使用需要根据不同的Linux版本来选用。
此外,由于当Postfix要使用SMTP认证时,会读取/usr/lib/sasl2/smtpd.conf文件中的内容,以确定所采用的认证方式,因此如果要使用saslauthd这个守护进程来进行密码认证,就必须确保/usr/lib/sasl2/smtpd.conf文件中的内容为:
pwcheck_method: saslauthd
热心网友
时间:2022-04-08 21:30
你的局域网内可以发邮件,是不是你的DNS指向的问题。/etc/resolv.conf的nameserver是不是不能解析外面的域名啊
用linux系统搭建postfix邮件服务器,但是局域网可以实现互发邮件,不能...
默认情况下,Postfix并没有启用SMTP认证机制。要让Postfix启用SMTP认证,就必须对Postfix的主配置文件/etc/postfix/main.cf进行修改。用户需要在main.cf文件中添加如下有关SMTP认证的设置部分:smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = ''smtpd_recipient_restrictions = permit_mynetworks p...
什么邮箱能在国外收发邮件?
作为卓迈(北京)技术有限公司的工作人员,我们推荐使用Gmail、Outlook等国际知名的电子邮箱服务来在国外收发邮件。这些邮箱服务拥有广泛的国际覆盖和稳定的性能,能确保您与全球各地的合作伙伴和客户保持顺畅的沟通。同时,它们也具备强大的垃圾邮件过滤功能和邮件加密技术,保障您的邮件安全。请根据您的具体需求选择合适的邮箱服务。Zoho Mail,这款邮箱在全球有16个数据中心,不需要梯子,可以直接收发国内外邮件,功能强大,很多跨国公司,和有国际业务往来的公司,都会选择Zoho Mail,由于功能过于强大,只能亲自体验15天,来体会了,性价比之王。
Linux系统下安装配置postfix邮件服务器教程
收件人邮件地址(tank@51yip.com)不存在,邮件无法送达。host mail.51yip.com[122.225.***.***] said: 550 5.1.1: Recipient address rejected: User unknown in local recipient table (in reply to RCPT TO command)2,cyrus-sasl配置 代码如下:[root@localhost postfix]# vim /etc/sasl2/s...
Linux 下无法使用mail命令发送邮件
根据你描述的情况,使用mail发邮件是通过本机的postfix来发送的。如果本机的的postfix配置中启用了relay,则会将发信请求转发到relay机器进行投递。如果此时通过mail发不出邮件,则问题有可能出现在relay的服务器上。你说的通过php是可以发邮件的,这个和使用mail是两回事。如果php程序使用的是自己的发信程...
linux 中的 postfix 邮件当中如何设置邮件群发功能
在/etc/aliases配置文件里设置邮件别名,格式是Receiving Account or other aliases : recipient A, recipient B, recipient C ..参考资料:http://www.centos.bz/2011/06/centos-install-setup-postfix/
linux下postfix邮件服务器的搭建,linux中DNS的配置,越详细越好,新手...
1、申请域名 2、想要追求稳定,可以去买一台服务器电脑,如果条件不允许用普通电脑也是可以。再下载一套邮件系统软件(推荐U-Mail邮件系统,有试用版的,也有。。就不多说了)装到这台电脑上。3、不知道你是家里宽带还是公司宽带,如果是公司宽带会有一个固定IP,可以向宽带服务商申请开通80端口(具体...
linux下,如何通过postfix使用命令行来发送附件?
安装的postfix使用mail命令现在是无法正常带附件形式的;可以使用mutt,但是这个发送的附件在网页端查看有时候会变成bin文件 建议客户端查看这样的测试邮件 yum install mutt mutt test@163.com -s "11222" -a rsync-3.1.1.tar.gz </root/test.txt ...
iRedMail在linux服务器上的搭建教程
2. CentOS搭建步骤2.1 准备工作首先,登录CentOS系统并更新安装包,确保系统环境最新:yum update然后,修改服务器主机名,进入编辑主机文件并保存:编辑/etc/hosts,将localhost改为你想要的邮件域名,如mail.x521.top切换到root权限,编辑/etc/sysconfig/network,设置主机名2.2 禁用SELinuxiRedMail不支持...
linux入门系列17--邮件系统之Postfix和Dovecot
在Linux系统中,Postfix负责发送,使用SMTP协议,而Dovecot负责接收,通过POP3或IMAP4协议。邮件传输过程中涉及MUA(邮件用户代理)、MTA(邮件传输代理)和MDA(邮件投递代理)。以发送邮件为例,即使对方服务器宕机,Postfix会暂存邮件,待对方恢复后投递。部署邮件系统时,首先需要在Centos7主机上规划邮件系统...
postfix dovecot 搭建的mail 服务器,fixmail无法认证,求助
1,Linux下可以,其中收可以怎么体现的,Dovecot根据系统用户建立了邮件目录?2,假定内部的Foxmail不行。用其他邮件客户端是否可以,比如OutLook,3,查询问题,日志为关健,比如你建立一个MDA,开始收发邮件时,打开mail.log和Dovecot.log 查看此时问题点在哪儿。4,测试的网络环境,是先内部后外部。内部...
为什么我在linux下给自己的root用户发送邮件的时候连接到别人的邮箱了...
对方的postfix服务器没有正常启动,或许网卡或者别的原因,比如你加过密,密码验证错误