当前位置:首页 » 操作系统 » 邮箱服务器linux

邮箱服务器linux

发布时间: 2025-10-13 10:17:48

linux mail服务器怎么用

一、概述:

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

通常使用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 6.5 32位

Postfix-2.8.12.tar.gz Postfix MTA(邮件传输代理)
Dovecot-2.1.8.tar.gz IMAP 和 POP3 邮件服务器
Postfixadmin-2.3.5.tar.gz 采用php编写的开源WEB邮箱及域名账号管理工具
Roundcubemail-0.8.1.tar.gz 采用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/main.cf,可以下载下来修改,也可以使用vi进行编辑:

vi /etc/postfix/main.cf

修改如下:

# 75行: 取消注释,设置hostname
myhostname = mail.lomu.me
# 83行: 取消注释,设置域名
mydomain = lomu.me
# 99行: 取消注释
myorigin = $mydomain
# 116行: 修改
inet_interfaces = all
# 119行: 推荐ipv4,如果支持ipv6,则可以为all
inet_protocols = ipv4
# 164行: 添加
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 264行: 取消注释,指定内网和本地的IP地址范围
mynetworks = 127.0.0.0/8, 10.0.0.0/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/rc.d/init.d/postfix start开启postfix,使用chkconfig postfix on将postfix开机启动。

4.配置Dovecot

修改如下:

[root@mail ~]# vi /etc/dovecot/dovecot.conf
# 26行: 如果不使用IPv6,请修改为*
listen = *

[root@mail ~]# vi /etc/dovecot/conf.d/10-auth.conf
# 9行: 取消注释并修改
disable_plaintext_auth = no
# 97行: 添加
auth_mechanisms = plain login

[root@mail ~]# vi /etc/dovecot/conf.d/10-mail.conf
# 30行: 取消注释并添加
mail_location = maildir:~/Maildir

[root@mail ~]# vi /etc/dovecot/conf.d/10-master.conf
# 88-90行: 取消注释并添加
# Postfix smtp验证
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}

[root@mail ~]# /etc/rc.d/init.d/dovecot start
Starting Dovecot Imap: [ OK ]

[root@mail ~]# chkconfig dovecot on

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

5.域名解析

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

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

再添加一个MX记录,主机记录为空,记录值为上面解析的二级域名mail.lomu.me,优先级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,就是一个邮箱用户,邮箱是[email protected],密码就是root的密码,所以需要创建用户,只要使用useradd创建用户,再使用passwd设置密码

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

# 创建用户
useradd admin
#设置密码,会要求输入两次密码
passwd admin

接下来登录Foxmail,如图:


点击创建,进入:

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



⑵ linux下安装什么邮件服务器比较好

强烈建议你使用postfix,目前大多数linux教程书上都会提到postfix的安装方法,可想而知postfix是主留。postfix的主要特点有:
1. postfix是免费的:
postfix想要作用的范围是广大的Internet用户,试图影响大多数的Internet上的电子邮件系统,因此它是免费的。
2. 更快:
postfix在性能上大约比sendmail快三倍。一部运行postfix的台式PC每天可以收发上百万封邮件。
3. 兼容性好:
postfix是sendmail兼容的,从而使sendmail用户可以很方便地迁移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。
4. 更健壮:
postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加。
5. 更灵活:
postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。
6. 安全性
postfix具有多层防御结构,可以有效地抵御恶意入侵者。如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。

⑶ linux里面怎样配置邮件服务器

Sendmail服务器配置
首先,在DNS正向解析上添加一个邮件交换器的名称
这里顺便把dns的测试也附上:

启动sendmail

正向主区域配置文件:

修改sendmail的配置文件
vi /etc/mail/sendmail.cf

改成

修改sendmail的配置文件
vi /etc/mail/sendmail.mc

去掉dnl

再添加两行

做输入重定向m4 /etc/mail/sendmail.mc>/etc/mail/sendmail.cf
编辑 /etc/mail/access

执行makemap hash /etc/mail/access.db </etc/mail/access

编辑vi /etc/mail/local-host-names把邮件服务器使用的域名给添加上去

重启sendmail服务

最后给[email protected]发送测试邮件

End。。。

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

快速配置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

这就表明无论来信的收件人地址是[email protected](其中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

热点内容
phphost 发布:2025-10-13 13:10:02 浏览:729
如何拆卸服务器上的软件 发布:2025-10-13 12:55:31 浏览:43
数据库设计权限表 发布:2025-10-13 12:55:30 浏览:208
centos7编译安装php56 发布:2025-10-13 12:47:43 浏览:506
android自定义搜索框 发布:2025-10-13 11:57:31 浏览:137
怎么在服务器配置软件 发布:2025-10-13 11:44:39 浏览:666
营业执照年度报告密码多少 发布:2025-10-13 11:35:53 浏览:571
刚买的电脑怎么调配置 发布:2025-10-13 11:26:27 浏览:358
轿车鸡肋配置有哪些 发布:2025-10-13 11:25:33 浏览:114
朗逸低配车有哪些配置 发布:2025-10-13 11:21:37 浏览:55