【转载】群晖搭建邮件服务器新手指南(mailplus server套件)
群晖搭建邮件服务器新手指南(mailplus server套件)
本文转载自:https://post.smzdm.com/p/akmr2mn8/?ivk_sa=1024320u
所有入了群晖坑的兄弟们,估计都动过搭建一个私人邮件服务器的念头,不管它好不好用,单是拥有一个符合自己心意的邮箱地址就感觉非常开心,特别是在这个好邮箱名或自己名字的邮箱名全被占用的年代。
群晖最近推出来的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地址就行了。
第二步 域名解析和获取AccessKey
1、获取AccessKey
(如果你有固定公网IP这可以跳过,我估计一般人都没有,所以还是老老实实看下去吧 )
我是在阿里云上申请的域名,鼠标移到右上角的头像上,就会出现AccesKey的按钮,然后顺着下图一步步的点
在这里我们使用子用户AccessKey,因为如果不使用子用户的话,万一你的AccessKey被泄露,你的所有权限都会被别人控制,用子用户的好处是可以单独设置权限,比如这个我就只准备指定云解析的权限。
记得要勾选下面的编程访问启用 AccessKey ID 和 AccessKey Secret,支持通过API或其他开发工具访问
复制好AccessKey ID 和 AccessKey Secret,放到一个记事本中,我们后面要用到的
用户设置好后,我们给它指定权限,因为在这里我们准备通过它来设置域名解析,所以给予它云解析的权限
在搜索框打个解析,很简单就可以找到管理云解析选项,添加进去就OK了
到此为止我们就把AccessKey子用户就设置好了,存好AccessKey ID,我们后面会用到。
2、域名解析
邮件服务器需要用到两条域名解析,一个是MX邮件解析一个是A记录解析。假设我们申请到的域名是abc.com,下面我们就用abc.com域名作为例子。
首先我们找到现在的公网IP是多少,在浏览器上输入www.ip.cn就能看到自己的公网IP,记好自己的IP
然后进入你的域名解析管理页面,建一个A记录,主机记录就是你准备给邮件服务器用的子域名,在这里我们通常设为mail,只是用mail来举例。
记录值就是我们刚查到的IP,全部设置好以后我们就可以通过mail.abc.com来访问我们的邮箱。
题外话:同样,还可以增加一个A主记录,用来访问你的群晖服务器。比如我就增加了个nas子域名,用nas.abc.com来访问我的群晖。当然这个和搭建邮件服务器无关。
然后我们需要增加一个MX记录,如果不增加,你就接收不到其他人给你发的邮件了。
到此,我们域名解析方面的工作就完成了。
第三步 将你的动态公网IP绑定到你的域名解析上
我们虽然找宽带服务商要到了公网IP,但是这个IP并不是固定IP,每一次断网或过一段时间,这个公网IP地址都可能发生改变,这个时候我们就要不断检查自己的IP,并同步到我们的域名解析上。
幸好我们有程序帮忙,让我们不至于IP变化了就得跑到域名解析平台上去手动重新解析。这个时候我们就需要用到我们之前申请到的AccessKey了。
进入群晖,点击控制面板----任务计划---新增--用户定义的脚本
任务名称可以随便设。
这里我是10分钟运行一次,可以看自己需要。它的作用是每10分钟检查一下IP是否改变,
运行频率我选的是10分钟,它的意思是这个脚本每10分钟运行一次。你们可以根据自己需要随意设。
这个地方要注意的是,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套件
进入群晖,套件中心,安装mailplus server和mailplus套件就不需要我废话了吧
安装完后,点开mailplus server,第一次打开会出来设置向导,按图依次操作
域名就输入我们申请的域名,点下主机名会自动在前面加上mail,如果没自动填上就自己输。
完成后会弹出一个窗口,我们点进去改成中等兼容模式,当然不改也可以,但有些邮件客户端可能连不上。
勾选中等兼容性后点应用保存起来。
点击服务把这些全部勾选。
在帐号中把要开通邮件的用户名激活,这我们以用户good为例,为它激活件服务
最后我们到控制面板,用户账户中,看看用户good,有没有给予mailplus应用程序权限。
如果有,到此为止,我们就建立了一个邮件服务器,并给其中一个叫good的用户开通了邮件服务。
现在我们只差最后一部就大功圆满了。打开控制面板选择应用程序门户,找到mailplus,选择编辑。
在自定义域中输入我们之前解析的域名,mail.abc.com
现在就可以访问mail.abc.com进入我们的邮箱登录界面了
从此,你就有一个自己完全控制的邮件服务器了,以后电子邮箱想设啥名就啥名,开不开心,快不快乐,有没有一种邮箱在手天下我有感觉 )