linux mail服务器怎么用

linux mail服务器怎么用,第1张

一、概述:

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

通常使用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,所以也不要勾选。 接下来点击创建,如果一切正常的话,你已经成功了。

以腾讯企业邮箱注册为例:
1、注册管理员账号
在企业邮箱官网免费注册一个管理员帐号;
2、添加域名
打开企业邮箱官网,登录管理员帐号,添加域名:
3、设置MX记录
此步骤需到域名提供商的管理界面设置
(1)打开域名管理界面,找“域名解析”处
(2)添加2条MX记录,参数如下:
邮件服务器名:mxbiz1qqcom优先级:5
邮件服务器名:mxbiz2qqcom优先级:10
4、等待域名生效
MX记录设置好后需要等待2-24小时方可生效,生效后,企业邮箱便创建成功。

前台页面 SendEmail aspx 代码             <h >                 发送电子邮件演示             </h >             <table cellpadding= cellspacing= border= >                 <tr>                     <td class= style >                         邮箱地址                      </td>                     <td class= style >                         <asp:TextBox ID= tb_Email runat= server Width= px ></asp:TextBox>                     </td>                 </tr>                 <tr>                     <td class= style >                         抄送至                      </td>                     <td class= style >                         <asp:TextBox ID= tb_cc runat= server Width= px ></asp:TextBox>                     </td>                 </tr>                 <tr>                     <td class= style >                         邮件主题                      </td>                     <td class= style >                         <asp:TextBox ID= tb_Subject runat= server Width= px ></asp:TextBox>                     </td>                 </tr>                 <tr>                     <td class= style >                         邮件内容                      </td>                     <td class= style >                         <asp:TextBox ID= tb_Body runat= server Height= px TextMode= MultiLine Width= px ></asp:TextBox>

                  </td>                 </tr>                 <tr>                     <td class= style >                         添加附件                      </td>                     <td class= style >                         <asp:FileUpload ID= tb_Attachment runat= server Width= px />                     </td>                 </tr>                 <tr>                     <td align= right colspan= >                         <asp:Button ID= btn_SendEmail runat= server Text= 发送邮件 OnClick= btn_SendEmail_Click />                     </td>                 </tr>             </table>        后台SendEmail aspx cs代码        protected void btn_SendEmail_Click(object sender EventArgs e)                 {                     //声明一个Mail对象                     MailMessage mymail = new MailMessage()                      //发件人地址                     //如是自己 在此输入自己的邮箱                     mymail From = new MailAddress( )                      //收件人地址                     mymail To Add(new MailAddress(tb_Email Text))                      //邮件主题                     mymail Subject = tb_Subject Text;                     //邮件标题编码                     mymail SubjectEncoding = System Text Encoding UTF ;                     //发送邮件的内容                     mymail Body = tb_Body Text;                     //邮件内容编码                     mymail BodyEncoding = System Text Encoding UTF ;                     //添加附件                     Attachment myfiles = new Attachment(tb_Attachment PostedFile FileName)                      mymail Attachments Add(myfiles)                      //抄送到其他邮箱                     mymail CC Add(new MailAddress(tb_cc Text))                      //是否是HTML邮件                     mymail IsBodyHtml = true;                     //邮件优先级                     mymail Priority = MailPriority High;                     //创建一个邮件服务器类                     SmtpClient myclient = new SmtpClient()                      myclient Host = ;                     //SMTP服务端口                     myclient Port = ;                     //验证登录

                     myclient Credentials = new NeorkCredential( @@@@@@ ) // @ 输入有效的邮件名 输入有效的密码                     myclient Send(mymail)                  }        效果如下

         如下图填入各项 点击发送邮件

        邮箱内

lishixinzhi/Article/program/net/201311/13912

MX 邮件交换
上面的意思是当发送邮件到 @miccomtw 时,会发送到 mr3miccomtw
(ip 1088038 ) mr4miccomtw(ip 1088012 ) micmaildvrmiccomtw (ip 1088058) 三个邮件服务器的优先级是不一样的
优先级应该是指定先连接那个的,如果连接失败在连接优先级低的

以在Windows Server 2003系统的DNS服务器中添加MX记录介绍方法:
第1步,在DNS控制台窗口中首先添加一个主机名为mail的主机记录,并将域名映射到提供邮件服务的计算机IP地址上。
第2步,在“正向查找区域”目录中右键单击准备添加MX邮件交换记录的域名,选择“新建邮件交换器(MX)”命令。
第3步,打开“新建资源记录”对话框,在“邮件服务器的完全合格的域名(FQDN)”编辑框中输入事先添加的邮件服务器的主机域名。或单击“浏览”按钮,在打开的“浏览”对话框中找到并选择作为邮件服务器的主机名称(如mail)。
第4步,返回“新建资源记录”对话框,当该区域中有多个MX记录(即有多个邮件服务器)时,则需要在“邮件服务器优先级”编辑框中输入数值来确定其优先级。通过设置优先级数字来指明首选服务器,数字越小表示优先级越高。最后单击“确定”按钮使设置生效。
第5步,重复上述步骤可以添加多个MX记录,并且需要在“邮件服务器优先级”编辑框中分别设置其优先级。

是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器。MX记录也叫做邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行 *** 控所有的邮箱设置。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/12745512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存