群晖搭建邮件服务器新手指南(mailplus server套件)

发布时间 2023-09-13 10:46:26作者: soliang

群晖搭建邮件服务器新手指南(mailplus server套件)

2019-11-23 19:26:28 48点赞 306收藏 46评论

所有入了群晖坑的兄弟们,估计都动过搭建一个私人邮件服务器的念头,不管它好不好用,单是拥有一个符合自己心意的邮箱地址就感觉非常开心,特别是在这个好邮箱名或自己名字的邮箱名全被占用的年代。

群晖最近推出来的mailplus server和mailplus station套件让搭建邮件服务器再不是技术宅们的专利,它让一切变得傻瓜起来,只需要做几步很简单的设定,你就能拥有一个完全由自己控制的邮件服务器。(注:mail server和mail station是早期套件,是通过调用其他邮件系统来实现)

准备工作

1、我们要准备一个域名
2、我们需要一个公网IP(用花生壳之类的也能实现,但是其实还麻烦,因为得到公网IP并不难)
域名这个很简单,申请域名的地方有很多,便宜的几块钱首年,一般的也就二十到三十不等。我们要注意的是续费,别整个首年1块钱,续费一百多,当然土豪请忽视。我自己就是在阿里云上申请的,因为在阿里云上申请AccessKey特别简单。至于公网IP,可以打电话到客服,如果你是电信的话打10000台,说家里要装监控,需要用到公网IP,多来回交涉几次,一般都没问题。

第一步 路由器设置

把光猫设置成桥接模式,这个很简单,用光猫的IP地址(有的光猫需要在IP地址后加:8080端口才能进入管理页面)登录进光猫管理页面后选择桥接模式。然后在路由中选择PPPoE拔号上网就行。相信这一步入了群晖坑的早就做过了。
然后我们设置端口转发,邮件服务器需要用到下面几个端口,协议都是TCP,这里面的192.168.2.81是我自己的群晖地址,你对应的改成自己群晖的IP地址就行了。

群晖搭建邮件服务器新手指南(mailplus server套件)

第二步 域名解析和获取AccessKey

1、获取AccessKey(如果你有固定公网IP这可以跳过,我估计一般人都没有,所以还是老老实实看下去吧群晖搭建邮件服务器新手指南(mailplus server套件) )
我是在阿里云上申请的域名,鼠标移到右上角的头像上,就会出现AccesKey的按钮,然后顺着下图一步步的点

群晖搭建邮件服务器新手指南(mailplus server套件)

在这里我们使用子用户AccessKey,因为如果不使用子用户的话,万一你的AccessKey被泄露,你的所有权限都会被别人控制,用子用户的好处是可以单独设置权限,比如这个我就只准备指定云解析的权限。在这里我们使用子用户AccessKey,因为如果不使用子用户的话,万一你的AccessKey被泄露,你的所有权限都会被别人控制,用子用户的好处是可以单独设置权限,比如这个我就只准备指定云解析的权限。

群晖搭建邮件服务器新手指南(mailplus server套件)

记得要勾选下面的编程访问启用 AccessKey ID 和 AccessKey Secret,支持通过API或其他开发工具访问

复制好AccessKey ID 和 AccessKey Secret,放到一个记事本中,我们后面要用到的复制好AccessKey ID 和 AccessKey Secret,放到一个记事本中,我们后面要用到的

群晖搭建邮件服务器新手指南(mailplus server套件)

用户设置好后,我们给它指定权限,因为在这里我们准备通过它来设置域名解析,所以给予它云解析的权限

在搜索框打个解析,很简单就可以找到管理云解析选项,添加进去就OK了在搜索框打个解析,很简单就可以找到管理云解析选项,添加进去就OK了

到此为止我们就把AccessKey子用户就设置好了,存好AccessKey ID,我们后面会用到。

2、域名解析
邮件服务器需要用到两条域名解析,一个是MX邮件解析一个是A记录解析。假设我们申请到的域名是abc.com,下面我们就用abc.com域名作为例子。

首先我们找到现在的公网IP是多少,在浏览器上输入www.ip.cn就能看到自己的公网IP,记好自己的IP

群晖搭建邮件服务器新手指南(mailplus server套件)


然后进入你的域名解析管理页面,建一个A记录,主机记录就是你准备给邮件服务器用的子域名,在这里我们通常设为mail,还是那句话,你高兴就好,设啥都行,我只是用mail来举例。记录值就是我们刚查到的IP,全部设置好以后我们就可以通过mail.abc.com来访问我们的邮箱。

群晖搭建邮件服务器新手指南(mailplus server套件)


题外话:同样,还可以增加一个A主记录,用来访问你的群晖服务器。比如我就增加了个nas子域名,用nas.abc.com来访问我的群晖。当然这个和搭建邮件服务器无关。

然后我们需要增加一个MX记录,如果不增加,你就接收不到其他人给你发的邮件了

群晖搭建邮件服务器新手指南(mailplus server套件)


到此,我们域名解析方面的工作就完成了。

第三步 将你的动态公网IP绑定到你的域名解析上

我们虽然找宽带服务商要到了公网IP,但是这个IP并不是固定IP,每一次断网或过一段时间,这个公网IP地址都可能发生改变,这个时候我们就要不断检查自己的IP,并同步到我们的域名解析上。幸好我们有程序帮忙,让我们不至于IP变化了就得跑到域名解析平台上去手动重新解析。这个时候我们就需要用到我们之前申请到的AccessKey了。

进入群晖,点击控制面板----任务计划---新增--用户定义的脚本

群晖搭建邮件服务器新手指南(mailplus server套件)

任务名称随意改任务名称随意改

任务名称可以随便设这里我是10分钟运行一次,可以看自己需要。它的作用是每10分钟检查一下IP是否改变这里我是10分钟运行一次,可以看自己需要。它的作用是每10分钟检查一下IP是否改变
运行频率我选的是10分钟,它的意思是这个脚本每10分钟运行一次。你们可以根据自己需要随意设

这个地方要注意的是,mail是我们刚才设置的子域名,abc.com是我们申请的域名,你们对照自己的域名设置就行。下面的是我们之前申请的AccessKey ID 和 AccessKey Secret,我让你们记到了记事本中,去复制过来粘贴在这里这个地方要注意的是,mail是我们刚才设置的子域名,abc.com是我们申请的域名,你们对照自己的域名设置就行。下面的是我们之前申请的AccessKey ID 和 AccessKey Secret,我让你们记到了记事本中,去复制过来粘贴在这里

下面就是脚本全文,你们改好后复制到上面的脚本框中,点击确定就行了

脚本全文:


#!/bin/sh

aliddns_name="nas"

aliddns_domain="clun.vip"

aliddns_ak="LTAI4FwwU6BeY8jurhUZso6e"

aliddns_sk="dN8gsBEnlOjgKgh2VvrU05puUczM9N"

aliddns_curl="curl -s whatismyip.akamai.com"

aliddns_dns="8.8.8.8"

aliddns_ttl="600"

ip=`$aliddns_curl 2>&1`

current_ip=`nslookup $aliddns_name.$aliddns_domain $aliddns_dns 2>&1`

if [ "$?" -eq "0" ]

then

current_ip=`echo "$current_ip" | grep 'Address 1' | tail -n1 | awk '{print $NF}'`

if [ "$ip" = "$current_ip" ]

then

exit 0

fi

fi

timestamp=`date -u "+%Y-%m-%dT%H%%3A%M%%3A%SZ"`

urlencode() {

# urlencode <string>

out=""

while read -n1 c

do

case $c in

[a-zA-Z0-9._-]) out="$out$c" ;;

*) out="$out`printf '%%%02X' "'$c"`" ;;

esac

done

echo -n $out

}

enc() {

echo -n "$1" | urlencode

}

send_request() {

local args="AccessKeyId=$aliddns_ak&Action=$1&Format=json&$2&Version=2015-01-09"

local hash=$(echo -n "GET&%2F&$(enc "$args")" | openssl dgst -sha1 -hmac "$aliddns_sk&" -binary | openssl base64)

curl -s "http://alidns.aliyuncs.com/?$args&Signature=$(enc "$hash")"

}

get_recordid() {

grep -Eo '"RecordId":"[0-9]+"' | cut -d':' -f2 | tr -d '"'

}

query_recordid() {

send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$aliddns_name.$aliddns_domain&Timestamp=$timestamp"

}

update_record() {

send_request "UpdateDomainRecord" "RR=$aliddns_name&RecordId=$1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddns_ttl&Timestamp=$timestamp&Type=A&Value=$ip"

}

add_record() {

send_request "AddDomainRecord&DomainName=$aliddns_domain" "RR=$aliddns_name&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&TTL=$aliddns_ttl&Timestamp=$timestamp&Type=A&Value=$ip"

}

if [ "$aliddns_record_id" = "" ]

then

aliddns_record_id=`query_recordid | get_recordid`

fi

if [ "$aliddns_record_id" = "" ]

then

aliddns_record_id=`add_record | get_recordid`

echo "added record $aliddns_record_id"

else

update_record $aliddns_record_id

echo "updated record $aliddns_record_id"

fi


到现在我们就把自己的公网IP和域名解析绑定好了。我这是以阿里云为例,如果是在其他地方申请的域名,要么迁移到阿里云,要么自己改脚本,呵呵群晖搭建邮件服务器新手指南(mailplus server套件)

第四步 安装mailplus server和mailplus套件

进入群晖,套件中心,安装mailplus server和mailplus套件就不需要我废话了吧

安装完后,点开mailplus server,第一次打开会出来设置向导,按图依次操作

群晖搭建邮件服务器新手指南(mailplus server套件)

域名就输入我们申请的域名,点下主机名会自动在前面加上mail,如果没自动填上就自己输域名就输入我们申请的域名,点下主机名会自动在前面加上mail,如果没自动填上就自己输

群晖搭建邮件服务器新手指南(mailplus server套件)

完成后会弹出一个窗口,我们点进去改成中等兼容模式,当然不改也可以,但有些邮件客户端可能连不上

群晖搭建邮件服务器新手指南(mailplus server套件)

勾选中等兼容性后点应用保存起来勾选中等兼容性后点应用保存起来

点击服务把这些全部勾选点击服务把这些全部勾选

在帐号中把要开通邮件的用户名激活,这我们以用户good为例,为它激活件服务

群晖搭建邮件服务器新手指南(mailplus server套件)

最后我们到控制面板,用户账户中,看看用户good,有没有给予mailplus应用程序权限。

群晖搭建邮件服务器新手指南(mailplus server套件)

如果有,到此为止,我们就建立了一个邮件服务器,并给其中一个叫good的用户开通了邮件服务。

铛铛铛,现在我们只差最后一部就大功圆满了。

打开控制面板选择应用程序门户,找到mailplus,选择编辑

群晖搭建邮件服务器新手指南(mailplus server套件)

在自定义域中输入我们之前解析的域名,mail.abc.com在自定义域中输入我们之前解析的域名,mail.abc.com

现在就可以访问mail.abc.com进入我们的邮箱登录界面了

群晖搭建邮件服务器新手指南(mailplus server套件)

从此,你就有一个自己完全控制的邮件服务器了,以后电子邮箱想设啥名就啥名,开不开心,快不快乐,有没有一种邮箱在手天下我有的感觉(此处应来一段无敌是多么多么寂寞,无敌是多么多么空虚的背景音乐群晖搭建邮件服务器新手指南(mailplus server套件) )