制作自己的 Raspberry Pi 电子邮件服务器

每个人都有一个电子邮件地址——它们对于在 21 世纪中期的互联世界中发挥作用至关重要。 大多数人的电子邮件地址是通过他们的雇主或通过谷歌或微软等科技巨头之一获得的。 但是您可以从一台简单的计算机(例如 Raspberry Pi)使用您自己的域名运行您自己的电子邮件服务器。

为什么要在您的 Raspberry Pi 上运行电子邮件服务器?

电子邮件相当于现代的一封信——它们是私人通信,但通过使用 Gmail 等免费提供商,您将获得掠夺性广告和跟踪公司的许可,可以浏览您的生活、约会、个人联系、旅行计划, 和保留。 谷歌将这些入侵作为功能出售,但对某些人来说,这是一种令人不安的窥探水平。

通过运行您自己的电子邮件服务器,您的数据将掌握在您自己的手中和您自己的硬件上,而不受阴暗公司实体的监督。 如果你真的需要匆忙丢失一封电子邮件,你可以随时吞下 microSD 卡(实际上不要这样做)。

Raspberry Pi 非常适合这个项目,因为它的功耗低——电子邮件服务器需要 24/7 全天候开机,所以任何更强大的东西都是浪费金钱。 电子邮件作为一种技术自 1970 年代就已经存在,并且可以在当时的计算机上使用。 任何比 Raspberry Pi 更强大的东西都是矫枉过正的。

创建树莓派邮件服务器难吗?

从头开始配置电子邮件服务器可能很复杂:它涉及安装和配置多个组件,包括 Postfix、Dovecot、openDKIM、SpamAssassin 和 Sieve。 它会占用你一天的大部分时间,而且是一个充满危险的过程,而且很容易出错。

幸运的是,有一些脚本可以很容易地在您的 Raspberry Pi 上安装电子邮件服务器,这意味着您可以在一个小时内启动并运行您的电子邮件服务器!

您的电子邮件服务器需要什么

要完成此项目,您将需要:

  • Raspberry Pi(任何型号都可以)
  • 以太网电缆
  • 静态 IP 地址
  • 域名——如果您还没有域名,这里有一些关于选择域名的有用提示
  • 了解您的 Pi 的本地 IP 地址
  • 另一台电脑

设置记录和开放端口

导航到 高级 DNS 您的注册商的部分,并删除任何已经存在的记录。 点击 添加新记录. 对于类型,选择 一个记录,对于主机,设置 @,然后在值字段中,设置您的公共 IP 地址。 Save,然后单击 添加新记录 再次。

在此记录中,对于类型,选择 一个记录; 对于主机,设置 *; 并在值字段中,设置您的公共 IP 地址。 最后,添加一个新的 MX 记录,与 @ 作为主持人, mail.your-domain.tld 作为值,并将优先级设置为 10. Save 新的 DNS 记录。

打开你的路由器 admin 菜单。 这通常通过键入来完成 192.168.1.1 进入浏览器。 如果这对您不起作用,请查阅您的路由器手册。 找到标题为 转发端口, 端口映射, 或者 港口管理,然后创建四个新条目:

  • 第一个是为了 HTTP 要求。 将本地和公共端口都设置为 80,以及本地 IP 地址到您的 Pi 的 IP 地址。
  • 第二个是为了 HTTPS 要求。 将本地和公共端口都设置为 443,再一次,本地 IP 地址到您的 Pi 的 IP 地址。
  • 第三个是为了 地图 要求。 将本地和公共端口都设置为 993,再一次,本地 IP 地址到您的 Pi 的 IP 地址。
  • 第四个是为了 SMTP 要求。 将本地和公共端口都设置为 587,再一次,本地 IP 地址到您的 Pi 的 IP 地址。

准备好你的 Pi!

在您的 Raspberry Pi 上安装基于 Debian 的操作系统后(Raspberry Pi OS 就可以了),使用以太网电缆将其连接到您的路由器。

  1. 如果您使用的是 Linux 或 macOS,则可以通过终端使用 Secure Shell (SSH) 登录 Raspberry Pi,如果使用的是 Windows,则使用 PuTTY 登录。
    ssh pi@your.pi.local.ip.address
  2. 更新和升级任何软件包:
    sudo apt update
    sudo apt upgrade
  3. 您将使用 Apache 作为您邮件子域的反向代理,以及 Certbot 来获取安全证书。 安装 Apache 和:
    sudo apt install apache2
  4. 添加 Certbot 存储库,然后更新并安装 Certbot:
    sudo add-apt-repository ppa:certbot/certbot
    sudo apt update
    sudo apt-get install python3-certbot-apache
  5. 更改目录:
    cd /etc/apache2/sites-available/
  6. 使用 nano 为您的邮件子域创建一个新的 conf 文件:
    sudo nano mail.conf

    并粘贴:

    <VirtualHost *:80>
    ServerName your.domain
    </VirtualHost>

    Save 并退出 nano Ctrl + O, 然后 Ctrl + X

  7. 更改目录并复制默认值 Apache 配置文件复制到您的新域的名称,并进一步复制到您的子域的名称:
    cd /etc/apache2/sites-available/
    sudo cp 000-default.conf your-domain.conf
    sudo cp 000-default.conf mail.conf
  8. 编辑 你的域.conf 纳米:
    sudo nano your-domain.conf

    而且,下线 ,添加另一行:

    ServerName your-domain.tld
  9. Save 并退出 nano Ctrl + O, 然后 Ctrl + X. 并重复该过程 邮件.conf.
  10. 启用两个 conf 文件:
    sudo a2ensite your-domain.conf
    sudo a2ensite mail.conf
  11. 重新开始 Apache:
    sudo service apache2 restart
  12. 运行 Certbot 以获取主域和邮件子域的安全证书和密钥。
    sudo certbot

    您将被要求提供您的电子邮件地址,以确认您同意服务条款,您是否愿意与 EFF 共享您的电子邮件地址,最后,您希望为哪些名称激活 HTTPS。 按 返回 选择所有域,当询问是否将 HTTP 流量重定向到 HTTPS 时,选择 2 重定向。

安装电子邮件服务器软件

按照以下步骤安装电子邮件软件。

  1. 移动到您的主目录并下载 电子邮件向导 安装脚本:
    cd ~
    curl -LO lukesmith.xyz/emailwiz.sh
  2. 在您的 Raspberry Pi 上运行之前了解脚本的作用始终是一个好习惯,因此:
    cat emailwiz.sh

    …检查是否有任何讨厌的东西。

  3. 使脚本可执行,然后运行脚本:
    sudo chmod +x emailwiz.sh
    sudo ./emailwiz.sh
  4. 该脚本将下载并安装 Postfix、Dovecot、openDKIM 和 SpamAssasin,您将需要在各个阶段与安装进行交互。
  5. 安装向导将要求您选择邮件服务器配置类型。 使用键盘上的箭头键选择 互联网网站,然后按 标签 键使 好的 突出显示并点击 Enter.
  6. 接下来,您将被要求提供完全合格的域名。 不要在域名中添加 www 或 http,只需输入域名本身即可。
  7. 安装完成后,您将看到三个以绿色突出显示的文本记录,以及主机和值。
  8. 再次打开浏览器,前往注册商的高级 DNS 页面,创建三个新的 TXT 记录,并将每条记录粘贴到相应的字段中。 这些将确保您的电子邮件远离其他人的垃圾邮件箱。
  9. 任何添加到 邮件 组将获得一个电子邮件帐户,其中包含他们的 Pi 用户名和密码。 将您的 Pi 用户添加到邮件组:
    sudo usermod -G mail -m

    就这么简单!

使用移动或桌面客户端连接到您的电子邮件服务器

您的电子邮件服务器功能齐全,可以随时使用。 它可以防止入侵者,您 Pi 上的任何用户帐户都可以使用它。 是时候使用电子邮件客户端连接到它了——尽管此时发送的任何电子邮件都可能落入收件人的垃圾邮件箱。 我们为此使用 Thunderbird 电子邮件,尽管该过程对于任何移动或桌面电子邮件客户端都是相似的。

在您的电子邮件客户端中,单击 新增帐户,您将被邀请到 设置您现有的电子邮件地址. Enter 您的姓名、电子邮件地址和密码。 您的电子邮件地址是您在 Pi 上的用户名加上域名; 例如,[email protected]。 您的密码将是您的用户用来登录 Pi 的密码。

而不是单击 继续 按钮,而是单击 手动配置 关联。 您将需要填写传入和传出服务器的详细信息。 对于这些,主机名或服务器名是 mail.your-domain-name.tld,登录名是您的完整电子邮件地址,密码是……您的密码。 将 IMAP 端口设置为 993 和 SMTP 端口 587. 连接安全性应设置为 启动TLS 和身份验证方法 普通密码.

您现在可以通过 Raspberry Pi 电子邮件服务器发送和接收电子邮件!

运行您自己的电子邮件服务意味着您不需要依赖任何其他人。 你是完全自给自足的,不在科技巨头的范围内。 即便如此,如果您将您的电子邮件服务器用于恶意目的 – 例如批量发送电子邮件或垃圾邮件,您会发现自己被其他提供商列入黑名单。 所以要小心。