树莓派发电子邮件,详细步骤使用Citadel搭建电子邮件服务器

这篇Raspberry Pi电子邮件服务器教程将带你了解如何设置自己的电子邮件服务器,成本低廉,又相对通用。

Raspberry-Pi-Mail-Server.jpg

在Pi上建立个人服务器的原因很多,其中之一就是它的成本低。初始成本很低,由于树莓Pi的低功耗,持续的支出也相对较低。

设置Raspberry Pi电子邮件服务器还有其他一些优势,比如可以使用自定义域名,并完全控制自己的个人通信。由于电子邮件存储在您自己的个人服务器上,没有人能扫描它们。

设置自己的电子邮件服务器的另一个伟大的原因是,它是一个很好的学习机会,它要正确配置很多东西。这可能很难设置,因为有相当多的事情可能会出错,如果你是一个初学者,那么故障排除可能会有点令人沮丧。

软件本身的安装超级简单,但第一次要想完美地工作,配置起来会很困难,所以我把这个项目标记为中等难度。

如果你打算发送电子邮件,你需要确保你的ISP没有屏蔽端口25。这种封锁是很常见的,但如果要求的话,通常可以解除封锁。

设备清单

下面是树莓派电子邮件服务器教程用到的所有设备,点击链接可直达特别优惠购买。

建议:

可选:

安装 Citadel 电子邮件服务器

和几乎所有的教程一样,我运行的是Raspbian的默认安装。如果你需要安装它,那么一定要查看我的Raspbian安装指南。

在树莓派上安装电子邮件服务器有几种方法,其中最复杂的方法是分别安装Postfix和Dovecot,然后安装一个web前端。这些组件中的每一个都必须单独配置,工作量很大,配置也相当耗时。

然而,在我们的教程中,我们将使用一个名为Citadel的软件包。它是一个易于设置、功能强大而又通用的邮件服务器。它极大地简化了建立电子邮件服务器的过程,并且不需要大量的配置就可以启动和运行。最重要的是它是一个100%开源的软件。

1. 首先,运行以下两个命令来更新和升级操作系统上的所有软件包。

sudo apt update
sudo apt upgrade

2. 接下来,在Raspberry Pi上安装编译Citadel软件所需的包。

我们将在本地编译Citadel,因为从Raspbian仓库提供的构建可能存在各种问题。

sudo apt install build-essential curl g++ gettext shared-mime-info libssl-dev zlib1g-dev 

3. 现在是时候开始Citadel的安装过程了,可以运行下面的命令轻松完成。

curl https://easyinstall.citadel.org/install | sudo bash

此命令将运行 Citadel 开发团队提供的脚本。这个脚本将下载、安装和配置我们在Raspberry Pi上运行Citadel软件所需的一切。如果您想自己查看这个脚本,您可以直接去Citadel Easy Install网站。

4. 当提示接受条款和条件时,按Y键,然后按ENTER键继续。

5. 下一步,您将被问及是否希望该脚本安装Citadel可能需要的任何附加包。再按Y,然后按ENTER继续。安装过程将需要一些时间,可以出去溜一圈再回来看看。

6. Citadel 安装完成后,您现在需要配置软件。

Raspberry-Pi-Citadel-Config-Set-Admin-Username.png

如果你想为管理员使用不同的用户名,你可以在这个阶段输入它。否则,你可以按ENTER键继续。

7. 现在,您将被要求为您的管理员用户输入密码。

Raspberry-Pi-Citadel-Config-Set-Admin-Password.png

8. 接下来,需要指定Citadel软件运行的用户。

默认情况下,如果没有指定任何用户,Citadel 将尝试在 root 用户下运行。对于这个选项,请确保输入 “citadel”。按ENTER键确认此选项的更改。

Pi-Citadel-Set-User-to-run-Under.png

9. 在此步骤中,您可以为 Citadel 服务器输入要监听的 IP 地址。

如果您只想通过特定的 IP 地址访问 Citadel,此选项非常有用。默认情况下,Citadel 将监听所有地址。

Pi-Citadel-Setting-Listen-Addresses.png

对于这个选项,按回车键来保持默认设置。

10. 下一步是指定您希望Citadel运行的端口。

只有当您在一台服务器上运行多个 Citadel 实例时,您才应该将此从默认的 504 端口更改。

Citadel-Port.png

11. 现在你将被要求定义认证方法。

除非你对其他三个选项有特殊需要,否则最安全的做法是将其设置为默认的0选项。

Raspberry-Pi-Citadel-Authentication-Method.png

按ENTER键继续到最后一步。

12. 在这些最后的步骤中,我们将在我们的Raspberry Pi上定义Citadel网页界面的端口。

如果你没有运行Apache等其他Web服务器,最好将HTTP设置为80端口,HTTPS设置为443端口。

另外,如果你运行的是Web服务器,可以尝试将HTTP端口设置为8080,HTTPS端口设置为8443。

Raspberry-Pi-Set-Citadel-Web-Ports.png

额外步骤

有时候上面的步骤会抛出错误,没有创建我们需要的管理员账号,无法正确设置邮件服务器。如果你是这种情况,那么你将需要做一些额外的步骤。

1. 首先,我们需要创建netconfigs文件夹,并将所有者和组设置为citadel。

sudo mkdir /etc/citadel/netconfigs
sudo chown citadel:citadel /etc/citadel/netconfigs

2. 接下来,我们需要重新启动Citadel,以便正确应用之前的更改。我们还想重新运行设置,这样如果第一次没有正确创建管理员账户,我们就可以设置它。

sudo service citadel restart
sudo /usr/lib/citadel-server/setup

3. 当你运行设置时,它会带你通过一系列的问题,第一个是管理员的名字。将其设置为你希望的管理员账户的用户名。

4. 接下来,它会要求你设置管理员账号的密码。把这个设置成安全的,这样你就不容易被黑客攻击了。

5 您现在可以跳过其余的问题。只需按回车键即可跳过问题,不做任何更改。

设置 Citadel 电子邮件服务器

1. 现在我们需要加载Citadels的网页界面,要做到这一点,请在你最喜欢的网络浏览器中访问你的Raspberry Pi的IP地址。在我的例子中,我会去http://192.168.1.105/。

如果你手头没有Raspberry Pi的IP地址,那么你可以在Raspberry Pi的终端上输入hostname -I来获取你的本地IP地址。

使用管理员用户名和安装过程中设置的管理员密码登录。

09-Citadel-Login.png

2. 现在你应该看到的是默认的仪表盘,你可以通过打开另一个页面,点击位于右上角的 “Make this my start page“来更改主页。

现在,只需点击侧栏中的管理。

10-Citadel-Dashboard-2.png

3. 现在我们在系统管理菜单中,这里有各种不同的选项,但我们要的是 “Edit site-wide configuration“,所以点击它。

11-Citadel-Admin-menu.png

4. 现在,在这个屏幕上,我们将不得不做一些改变,让一切工作。在这里,我们需要将 “Fully Qualified Domain Name“改为我们计划用于电子邮件的自定义域名。

在我们的例子中,我们将设置为mail.labno3.com。

完成后,点击 “SMTP “标签。

12-Citadel-Site-config-general.png

5. 现在在这个屏幕上记下这里提到的端口,我们需要将这些端口转发,以允许服务器通过SMTP接收邮件。完成后,按 “Save Changes“按钮,然后点击侧栏的 “Administration“。

13-SMTP-config.png

6. 现在回到 “System Administration Menu“中,单击 “Domain names and internet mail configuration“。此选项将把我们带到我们将使用的菜单,以添加额外的域名到Citadel。

11b-Citadel-Admin-menu-2.png

7. 现在在这个屏幕上,在 “Local host aliases“下输入你要使用的域名,然后按 “Add“按钮。完成后,点击侧栏的 “Administration“。

14-Local-host-aliases.png

8. 现在,我们又回到了这个屏幕上,需要点击 “Shutdown Citadel“下的 “Restart Now“,这样可以确保我们所有的设置更改现在都会加载进来。

11c-Citadel-Admin-menu.png

为您的Raspberry Pi电子邮件服务器设置DNS。

最简单的方法来设置你的DNS是利用像Cloudflare的服务。Cloudflare提供了一个稳定的DNS服务,也可以很容易地设置为也作为一个动态的DNS服务,一个额外的优势是,它还使修改DNS记录变得非常容易,更新的传播速度比大多数DNS服务快得多。

1. 在Cloudflare上进入你的域名,然后进入DNS标签。

2. 在这里你需要添加一个A名记录,指向你的网络的公共IP地址。这个记录将允许你在端口转发后访问你的webmail客户端。它也是需要的,这样我们就可以将MX记录指向它。

3. 现在添加一条MX记录,指向你在上一步设置为A记录的域名。

15-Cloudflare.png

4. 完成这些工作后,你现在需要把之前的各个端口转发出去。如果你没有做任何修改,那么你需要转发以下端口80、25、587和465。其中最后3个端口应该是之前在SMTP设置页面中提到的SMTP端口。

如果你不确定如何在你的路由器上进行端口转发,你可以尝试按照我们的通用端口转发指南,你可以在这个网站上找到。否则在端口转发网站上查找你的路由器。

另外,如果你有一个动态的IP地址,你需要设置一个动态的DNS客户端,你可以按照我们的指南来设置。确保你按照设置的步骤,通过Cloudflare工作。

为您的Raspberry Pi电子邮件服务器设置SpamAssassin

现在我们将通过设置Spamassassin,这是一个处理筛选垃圾邮件的工具。它是安装在任何私人电子邮件服务器上的重要工具。它将给Raspberry Pi增加一点工作量,但它应该能够处理得很好。

1. 首先,运行以下命令从官方包中安装Spamassassin。Spamassassin的安装过程可能会花费一些时间,因为它要编译几样东西。

sudo apt-get install spamassassin

2. Spamassassin安装完成后,我们现在需要对它的配置进行一些修改,运行以下命令编辑第一个配置文件。

sudo nano /etc/spamassassin/local.cf

3. 更新下面提到的行,使它们与我们所写的一致,如果这些行中有任何一行前面有一个#,那么就把它删除。我们将解释每一行的作用以及为什么你应该启用它们。

这一行使Spamassassin修改垃圾邮件的主题头,加入SPAM和Spamassassin系统给它的垃圾邮件分数。

rewrite_header Subject [***** SPAM _SCORE_ *****]

这一行告诉Spamassassin只修改邮件的标题,不对实际的正文进行任何修改。

report_safe 0

将所需的分数设置得很低,意味着你最初会得到很多假阳性,但它会帮助你教会Spamassassin知道什么邮件是好的,什么邮件是坏的。

required_score 2.0

接下来这一行设置Spamassassin使用贝叶斯过滤器。贝叶斯是一种估计邮件是否为垃圾邮件的概率的方法。它是一种常用的方法,随着样本量的增加而改进。

use_bayes 1

下面一行开启贝叶斯过滤的自动学习。

bayes_auto_learn 1

全部完成后,只需按Ctrl+X,然后按Y,再按Enter键保存并退出文件。

4. 现在我们需要编辑最后一个文件来完成Spamassassin的设置,运行以下命令。

sudo nano /etc/default/spamassassin

这一行允许一个cron作业自动更新Spamassassin规则。

CRON=1

保存后按Ctrl+X再按Y键退出文件。

5. 下一个命令将使spamassassin服务在启动时启动。

sudo update-rc.d spamassassin enable

6. 现在我们可以使用以下命令启动Spamassassin守护进程。

sudo service spamassassin start

7. 我们现在需要进入Citadels网页界面,回到管理界面。

10-Citadel-Dashboard-1.png

8. 回到这里后,我们需要进入 “域名和Internet邮件配置”。

11b-Citadel-Admin-menu-2.png

9. 现在我们在这里,我们需要在 “SpamAssassin Hosts “下输入IP地址,127.0.0.1。输入完毕后,我们按 “添加 “按钮就可以了。

16-Add-spamassassin.png

为Citadel设置ClamAV

现在进入树莓派电子邮件服务器安装指南的最后一部分,我们将设置和安装ClamAV软件。这款软件将扫描所有收到的邮件是否有病毒,并帮助保护你的Raspberry Pi不被感染。

1. 安装ClamAV非常简单,因为它已经包含在Debian软件包中,我们只需运行以下命令即可安装。

sudo apt-get install clamav

2. 现在我们要让ClamAV下载最新版本的病毒数据库,我们可以通过运行以下命令来实现。

sudo freshclam

你可能会遇到下面的错误,但我们可以处理。

ERROR: /var/log/clamav/freshclam.log is locked by another process

为了处理这个错误,我们需要停止clamav,我们可以通过运行下面的命令来实现。然后重新运行sudo freshclam。

sudo service clamav-freshclam stop

3. 更新完成后,运行以下命令。

sudo service clamav-freshclam start

4. 现在用systemctl启用ClamAV,这样就能保证它在启动时启动。

sudo systemctl enable clamav-freshclam

5. 我们现在需要进入Citadels网页界面,回到管理界面。

10-Citadel-Dashboard-2.png

6. 回到这里后,我们需要进入 “域名和Internet邮件配置”。

11b-Citadel-Admin-menu-2.png

7. 现在我们在这里,我们需要在 “ClamAV clamd hosts “下输入IP地址,127.0.0.1。输入完毕后,我们就可以按 “添加 “按钮了。

17-Add-clamav.png

希望现在,你已经有了一个功能齐全的电子邮件服务器,你能够成功地连接到。

更新电子邮件地址

如果您需要更新您的用户账户的电子邮件地址,那么当您登录到您所选择的用户时,可以在高级菜单中找到。

update-contact-information.png

2. 在 “primary internet email address “下更新你的电子邮件地址,你还可以更新其他东西,如你的显示名称和你想为这个帐户连接的其他电子邮件地址(互联网电子邮件别名)。

update-personal-email-address.png

3. 完成后,选择保存更改。

疑难解答

在做这个教程的时候,你可能会遇到不少问题,有的很容易解决,有的则比较困难。

  • 有些 ISPS 会封锁端口 25,这意味着当您发送电子邮件时,它们会失败。要解决这个问题,您需要解开端口封锁,或者设置 citadel 使用 ISP 的 SMTP 服务器。您可以在这里找到更多关于出站电子邮件被卡住的信息。
  • 如果你没有收到电子邮件,那么这可能意味着你的DNS没有正确配置。回到您的DNS被管理的地方,查看信息。

我希望本教程已经向你展示了如何设置Raspberry Pi电子邮件服务器,并且你没有遇到任何问题。如果你有一些反馈或遇到任何问题,请不要犹豫,在下面留言。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 树莓派发电子邮件,详细步骤使用Citadel搭建电子邮件服务器

赞 (0)

评论

4+5=