|-摘 Linux利用mail-in-a-box搭建自己的域名邮箱(全流程完整版,包括添加SSL)
注意mail-in-a-box的域名就用默认的box.yourdomian,改了的话,很多地方要改。
另外,mail-in-a-box只支持Ubuntu 18.04,不支持其他的Linux系统版本
刺猬 2019-06-27
Mail-in-a-Box lets you become your own mail service provider in a few easy steps. It’s sort of like making your own gmail, but one you control from top to bottom.现阶段的免费邮件服务比较多,博主也尝试过一些进行安装,比如经典的vesta面板自带邮局、国内开源的ewomail、winwebmail、zimbra、mailinabox 等等,大多都能正常配置。
但是总是发现smtp有问题,具体问题为接入一些常见的应用进行发信就会出现错误。所以今天给大家推荐这款:Mail-in-a-Box。
系统要求:
操作系统:Ubuntu 18.04 x64内存:最低512MB。
安装前的准备:
一,在域名解析商那里配置DNS,下面是至少要配置的
A记录 box IP A记录 ns1.box IP A记录 ns2.box IP TXT记录 _dmarc v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s; TXT记录 *._domainkey v=DKIM1; p= TXT记录 @ v=spf1 -all MX记录 @ box.yourdomain 优先级10
二,在服务器主机商那里去设置DNS反解析,国内的很多要联系客服设置,国外的不少都支持用户自己在主机管理设置,比如vultr.com等等。
找到Reverse DNS,如果有了的话就更改,没有的话就添加:前面是输入IP 后面是输入box.yourdomain
安装:
安装Mail-in-a-Box非常简单,官方提供了一键安装包:
curl -s https://mailinabox.email/setup.sh | sudo bash
请务必使用root用户进行安装。
安装过程过,会出现以下提示:
此界面请输入管理员邮箱,此邮箱为后台用户名,也是第一个邮箱用户。请务必记录下来。
回车后,会出现第二个页面:
这个页面是地址是管理地址,后台、邮箱、云服务地址都在此页面中。
然后等待系统自动安装完成即可,期间可能会有报错,比如下面这样
Firewall is active and enabled on system startup Failed to restart systemd-resolved.service: Unit systemd-resolved.service is masked.
我们执行下面命令就可以解决...
|-原 使用EwoMail 邮件服务器软件搭建邮件服务器(在Centos Stream 8上安装失败,在Centos 7.9上安装成功)
在Centos Stream 8上尝试安装EwoMail 邮件服务器软件,repo源一直出问题
更换操作系统为Centos 7.9,再安装EwoMail 邮件服务器,OK啦
开源免费版不能用POP3和STMP发系统邮件的功能,果断放弃了。
炸,锅,2G内存好像安装不上(已实测2G内存Centos7.9安装上了EwoMail 20220611)
安装根据手册 http://doc.ewomail.com/docs/ewomail/install
安装开始时提示mysql已安装
[root@10-7-188-37 ~]# cd /root/EwoMail/install [root@10-7-188-37 install]# sh ./start.sh yourdomian ./start.sh: line 20: [: too many arguments mysql installed, installation failed [root@10-7-188-37 install]#
安装中断,于是又卸载了mysql,
安装开始后,前面挺顺利,但是后面又报错有应用安装不上
忘记把代码复制贴过来了
未完待续 2020602
来了,上报错代码
[root@10-7-118-170 ~]# cd /root/EwoMail/install [root@10-7-118-170 install]# sh ./start.sh yourdomain setenforce: SELinux is disabled ./start.sh: line 20: [: too many arguments Last metadata expiration check: 0:15:39 ago on Fri 03 Jun 2022 05:28:04 AM HKT. Package epel-release-8-15.el8.noarch is already installed. Dependencies resolved. Nothing to do. Complete! 0 files removed ./start.sh: line 162: [: too many arguments Extra Packages for Enterprise Linux 8 - x86_64 0.0 B/s | 0 B 00:00 Errors during downloading metadata for repository 'epel': - Curl error (6): Couldn't resolve host name for https://download.example/pub/epel/8/Everything/x86_64/repodata/repomd.xml [Could not resolve host: download.example] Error: Failed to download metadata for repo 'epel': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried Extra Packages for Enterprise Linux 8 - x86_64 0.0 B/s | 0 B 00:04 Errors during downloading metadata for repository 'epel': - Curl error (7): Couldn't connect to server for https://download.example/pub/epel/8/Everything/x86_64/repodata/repomd.xml [Failed to connect to download.example port 443: Connection refused] - Curl error (6): Couldn't resolve host name for https://download.example/pub/epel/8/Everything/x86_64/repodata/repomd.xml [Could not resolve host: download.example] Error: Failed to download metadata for repo 'epel': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried amavisd Installation failed [root@10-7-118-170 install]#
又报错啦
更换yum源为Centos-vault
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo yum clean all && yum makecache
好 ,再试试
cd /root/EwoMail/install [root@10-7-118-170 install]# cat /etc/centos-release CentOS Stream release 8 [root@10-7-118-170 install]# sh ./start.sh yourdomain setenforce: SELinux is disabled ./start.sh: line 20: [: too many arguments Last metadata expiration check: 0:11:16 ago on Fri 03 Jun 2022 05:54:28 AM HKT. Package epel-release-8-15.el8.noarch is already installed. Dependencies resolved. Nothing to do. Complete! sed: can't read /etc/yum.repos.d/epel.repo: No such file or directory sed: can't read /etc/yum.repos.d/epel-testing.repo: No such file or directory 0 files removed ./start.sh: line 162: [: too many arguments Last metadata expiration check: 0:11:19 ago on Fri 03 Jun 2022 05:54:28 AM HKT. No match for argument: oniguruma-devel Package libtool-ltdl-2.4.6-25.el8.x86_64 is already installed. Package freetype-2.9.1-4.el8_3.1.x86_64 is already installed. Package libpng-2:1.6.34-5.el8.x86_64 is already installed. Package libjpeg-turbo-1.5.3-12.el8.x86_64 is already installed. Package unzip-6.0-46.el8.x86_64 is already installed. Package wget-1.19.5-10.el8.x86_64 is already installed. Error: Unable to find a match: oniguruma-devel Last metadata expiration check: 0:11:20 ago on Fri 03 Jun 2022 05:54:28 AM HKT. Error: Problem: conflicting requests - nothing provides perl(Digest::SHA1) needed by amavisd-new-2.12.0-1.el8.noarch - nothing provides perl(IO::Stringy) needed by amavisd-new-2.12.0-1.el8.noarch (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages) amavisd Installation failed [root@10-7-118-170 install]#
又报错Error: Unable to find a match: oniguruma-devel ...
|-转 ubuntu 22.04配置国内镜像源-2024.7月最新版
复制以下命令即可一键切换到阿里云 ubuntu 22.04镜像:
sudo bash -c "cat << EOF > /etc/apt/sources.list && apt update deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse EOF"
清华大学镜像
sudo bash -c "cat << EOF > /etc/apt/sources.list && apt update deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse EOF"
sudo apt-get update&&sudo apt-get upgrade
ubuntu 22.04配置国内镜像源-2024.7月最新版_ubuntu22.04更换国内源-CSDN博客 ...
|-转 用mail-in-a-box发送邮件时报错 SMTP 错误 (554): 添加收件人失败 ervice unavailable;
SMTP 错误:554 电子邮件因安全策略而被拒绝 – 解决该问题的 7 个步骤
我估计原因是
DKIM 记录
DKIM(域名密钥识别邮件)是服务器用来验证电子邮件完整性的电子邮件身份验证协议。 每封电子邮件都由数字签名进行签名,这使得目标服务器能够确认邮件在传输过程中没有被更改。 如果 DKIM 验证由于 DKIM 记录缺失或无效而失败,传入电子邮件将被拒绝,并显示 554 电子邮件错误。
为了保证成功发送电子邮件,服务器会进行许多称为 SMTP 进程的交换,这对于电子邮件通信至关重要。 当 SMTP 错误发生时,此过程会受到干扰,电子邮件的传输会停止。 通常,会向发件人发送一条表明电子邮件无法送达的退回消息以及简短的错误说明。
SMTP 错误有一个分类:
- 4xx 错误意味着 SMTP 服务器暂时无法将邮件传送给收件人;
- 5xx 错误意味着永久性交付失败。
这些错误可能是由多种原因引起的,例如看起来像垃圾邮件的内容或服务器配置问题,所有这些都会导致电子邮件被拒绝。
电子邮件发送到收件箱的路径上的一个严重障碍是“554 由于安全策略而拒绝电子邮件”SMTP 错误,这表示电子邮件发送尝试不成功。
了解 SMTP 错误 554 的核心原因将有助于发件人更好地优化其电子邮件通信并组织电子邮件发送流程,以避免将来出现此类传送失败。
554 封电子邮件因安全策略而被拒绝:这意味着什么?
“554 邮件因策略原因被拒绝”是一个常见的 SMTP 错误,表示您尝试发送的电子邮件由于违反策略而被接收邮件服务器阻止或拒绝。 出现此错误的原因有多种,例如:
1. 接收方的限制。
收件人端配置的电子邮件过滤规则是导致 554 电子邮件错误的典型原因。 在以下情况下,电子邮件可能会被收件人的服务器拒绝:
- 发件人的 IP 地址已列入黑名单。
如果发件人的 IP 地址列在公共 RBL(实时黑洞列表)中,则电子邮件可能会被阻止,并出现“554 邮件因策略原因被拒绝”SMTP 错误。
...
|-原 mail-in-a-box API接口文档以及PHP代码示例
https://mailinabox.email/api-docs.html
查询用户列表
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://域名/admin/mail/users?format=json', CURLOPT_SSL_VERIFYPEER => FALSE, CURLOPT_SSL_VERIFYHOST => FALSE, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Authorization: Basic {'.$access_token.'}', 'User-Agent: Apifox/1.0.0 (https://apifox.com)' ), )); $response = curl_exec($curl); curl_close($curl); var_dump($response);die;
$access_token是username:password的Base64 encoding ...
|-摘 基于CentOS7 Centos8平台搭建邮件服务器
EwoMail在Centos8上安装了,各种坑,各种报错。这个集成包太臃肿了。官网建议是在Centos7上安装 ,在Centos7上安装了下,安装的挺顺利 20200416
EwoMail 已经弃用,国内的一家公司搞的产品,免费版的不支持stmp和pop3自动发送邮件,改用mail-in-a-box(只支持Ubuntu 18.04)。 20200418
基于CentOS7平台搭建邮件服务器
https://blog.51cto.com/jiayimeng/2416421
centos7搭建postfix邮件服务器
https://www.cnblogs.com/operationhome/p/9056870.html
Postfix的简介
是一种电子邮件服务器,它是由任职于IBM华生研究中心的荷兰籍研究员Wietse Venema为改良sendmail邮件服务器而产生的。最早在1990年代晚期出现,是个开放源代码的软件。
在 Red Hat Enterprise Linux 或 CentOS 系统上安装 iRedMail
https://docs.iredmail.org/install.iredmail.on.rhel-zh_CN.html
系统要求
Warning
阿里云、腾讯云均禁止使用邮件服务所必须的 25 端口提供邮件服务,因此您不能在 它们的云服务器部署邮件服务器。
Warning
iRedMail 只针对全新安装的操作系统设计,它要求你的操作系统上没有事先 安装邮件服务相关的组件,例如 MySQL,OpenLDAP,Postfix,Amavisd,等。 iRedMail 会自动安装和配置邮件服务所需的组件,因此如果操作系统上已有相关 组件,iRedMail 可能会打乱你的配置并造成服务无法正常启动。
要在 Red Hat Enterprise Linux (以下简称 RHEL)或 CentOS 上安装 iRedMail,你需要:
- 一个全新安装的 RHEL 或 CentOS 系统。支持的版本号在下载页面有注明。
- 要运行一个低流量的邮件服务器,要求至少2 GB内存才能使用完整的垃圾邮件和病毒扫描功能。
未完待续,有空继续找搭建邮件服务器的资料和文章 20200414
...
|-原 使用EwoMail搭建属于自己的个人邮件服务器——超详细图文教程
hostnamectl set-hostname mail.chawen.org
cd /root/EwoMail/install
sh ./start.sh chawen.org -f
详情链接:https://wokan.chawen.org/post/1263...
|-转 如何在 CentOS 8 上安装和配置 Postfix 邮件服务器
试了ewomail,ewomail-lamp install failed。安装失败,各种失败,各种报错。一家深圳的公司搞的。
试了mail-in-a-box/mailinabox
Mail-in-a-Box only supports being installed on Ubuntu 18.04, sorry. You are running:
setup/preflight.sh: line 14: lsb_release: command not found
各种坑,邮件服务器不是好搭的 20200416 03:18
https://zhuanlan.zhihu.com/p/92890899
Postfix 是一个自由开源的 MTA(邮件传输代理),用于在 Linux 系统上路由或传递电子邮件。在本指南中,你将学习如何在 CentOS 8 上安装和配置 Postfix。-- James Kiarie(作者)
Postfix 是一个自由开源的 MTA(邮件传输代理),用于在 Linux 系统上路由或传递电子邮件。在本指南中,你将学习如何在 CentOS 8 上安装和配置 Postfix。
实验室设置:
- 系统:CentOS 8 服务器
- IP 地址:192.168.1.13
- 主机名:http://server1.crazytechgeek.info(确保域名指向服务器的 IP)
步骤 1)更新系统
第一步是确保系统软件包是最新的。为此,请按如下所示更新系统:
# dnf update
继续之前,还请确保不存在其他 MTA(如 Sendmail),因为这将导致与 Postfix 配置冲突。例如,要删除 Sendmail,请运行以下命令:
# dnf remove sendmail
步骤 2)设置主机名并更新 /etc/hosts
使用下面的hostnamectl
命令在系统上设置主机名:
# hostnamectl set-hostname server1.crazytechgeek.info
# exec bash
此外,你需要在/etc/hosts
中添加系统的主机名和 IP:
# vim /etc/hosts
192.168.1.13 server1.crazytechgeek.info
保存并退出文件。
步骤 3)安装 Postfix 邮件服务器
验证系统上没有其他 MTA 在运行后,运行以下命令安装 Postfix:
# dnf install postfix
Install-Postfix-Centos8步骤 4)启动并启用 Postfix 服务
成功安装 Postfix 后,运行以下命令启动并启用 Postfix 服务:
# systemctl start postfix
# systemctl enable postfix
要检查 Postfix 状态,请运行以下systemctl
命令:
# systemctl status postfix
Start-Postfix-check-status-centos8太好了,我们已经验证了 Postfix 已启动并正在运行。接下来,我们将配置 Postfix 从本地发送邮件到我们的服务器。
步骤 5)安装 mailx 邮件客户端
在配置 Postfix 服务器之前,我们需要安装mailx
,要安装它,请运行以下命令:
# dnf install mailx
Install-Mailx-CentOS8步骤 6)配置 Postfix 邮件服务器
Postfix 的配置文件位于/etc/postfix/main.cf
中。我们需要对配置文件进行一些修改,因此请使用你喜欢的文本编辑器将其打开:
# vi /etc/postfix/main.cf
更改以下几行:
myhostname = server1.crazytechgeek.info
mydomain = crazytechgeek.info
myorigin = $mydomain
## 取消注释并将 inet_interfaces 设置为 all##
inet_interfaces = all
## 更改为 all ##
inet_protocols = all
## 注释 ##
#mydestination = $myhostname, localhost.$mydomain, localhost
## 取消注释 ##
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
## 取消注释并添加 IP 范围 ##
mynetworks = 192.168.1.0/24, 127.0.0.0/8
## 取消注释 ##
home_mailbox = Maildir/
完成后,保存并退出配置文件。重新启动 postfix 服务以使更改生效:
# systemctl restart postfix
步骤 7)测试 Postfix 邮件服务器
测试我们的配置是否有效,首先,创建一个测试用户。
# useradd postfixuser
# passwd postfixuser
接下来,运行以下命令,从本地用户pkumar
发送邮件到另一个用户postfixuser
。
# telnet localhost smtp
或者
# telnet localhost 25
如果未安装 telnet 服务,那么可以使用以下命令进行安装:
# dnf install telnet -y
如前所述运行命令时,应获得如下输出:
[root@linuxtechi ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 server1.crazytechgeek.info ESMTP Postfix
上面的结果确认与 postfix 邮件服务器的连接正常。接下来,输入命令:
# ehlo localhost
输出看上去像这样:
250-server1.crazytechgeek.info
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8
接下来,运行橙色高亮的命令,例如mail from
、rcpt to
、data
,最后输入quit
:...
|-转 0成本,一招永久解决自建邮件服务器被退信问题
不知道怎么样,去试试
相信很多有NAS喜欢折腾的同学,在自己家里搭建过Mail server,但都有一个绕不开的话题,那就是发送邮件时有很大的概率会被退信。其中有一个很重要的原因(配置问题导致的不在本次讨论之列),就是因为我们的域名或IP被防垃圾邮件机构(如spamhaus)列入了不信任清单。网上也有各种申请移除的方法,但我们家用的一般为动态IP,每次都走一遍移除的手续很麻烦。有没有能永久解决退信的问题,答案是肯定的:有!
解决思路
既然知道了被退回的原因,那我们就尝试找解决的办法。通过中继服务器发送邮件是一个不错的选择,这样可以解决信任问题,但现在市面上提供中继服务的都是收费的,我尝试了很多,最后选定的是亚马逊的Amazon SES产品,虽然也是商业化产品,但免费套餐包中每月出站62000条,入站1000条的量,已足以满足个人日常收发邮件的需求。我个人用了两年时间,至今没产生1分钱费用。如果有人觉的是在做广告,慢走不送,谢谢。
但这个解决方案有一个前提条件:就是NAS上已经搭建好了邮件服务器,能正常收发邮件,只不过发出去的很多邮件会被退回或拒收。至于如何在NAS上搭建和配置邮件服务器,可以自行度娘,或者有时间了我也出个搭建的过程分享。目前,该方案在Mail-tester上的得分为9.9分。
特别声明:
以上方法只解决因IP不被信任或拉黑而导致的被退信,不能解决所有的退信问题。同时该方法是由本人尝试后目前在用的方案,但并不对按此方案部署引起的任何问题负责。
亚马逊Amazon SES申请流程及注意事项
1、登录亚马逊官网的AWS频道,在客户参与下找到Amazon SES
2、点Amazon SES入门,在弹出页面点创建新AWS账户
3、按照提示创建一个新AWS账户,其中支付环节选定一种支付方式(会做扣款验证),支持计划先择免费后完成注册
4、回到刚才的注册窗口,选择根用户登录。注意:不是所有区域都支持SES服务,需要在右上角选择一个比较近的区域登入
5、确认区域后,在左侧找到SES服务点进去
6、在Domain页面填入自己邮件服务器的域名
7、在域名管理后台,增加4条解析记录。下面第1张图是弹层,CNAME记录少1条,关闭弹层后,以页面上的3条CNAME记录为准(第2张图)
8、之后系统会自动完成认证,到此,基础的服务配置就算完成了...
|-摘 CloudFlare CDN 使用教程 启用 DNSSCE
不少站长都遇到过DNS劫持和污染的情况~莫名其妙的自己的域名就指向了乱七八糟的网站~运气背点的域名直接就没了~所以在防止dns劫持上未雨绸缪是非常有必要的~今天带来Cloudflare免费配置DNSSEC的教程~
DNSSEC说明
DNSSEC是Domain Name System Security Extensions 的简称~翻译为DNS安全扩展,是由IETF提供的一系列DNS安全认证的机制(可参考RFC2535)。它提供了一种来源鉴定和数据完整性的扩展,但不去保障可用性、加密性和证实域名不存在。换一个大家都能理解的说法~DNSSEC与DNS的关系 就如同HTTPS和HTTP的关系~
DNSSEC 是 DNS 协议的扩展,允许签名 DNS 数据以保护域名解析过程的安全。欲了解有关 DNSSEC 和其用途的信息,请访问ICANN 网站和https://tools.ietf.org/html/rfc6781。
开启后邮件被拒收的可能性会降低。
在CloudFlare的DNS配置找到DNSSCE设置,点击Enable DNSSCE
...