惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
T
The Blog of Author Tim Ferriss
J
Java Code Geeks
腾讯CDC
D
Docker
G
Google Developers Blog
D
DataBreaches.Net
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
S
SegmentFault 最新的问题
The Cloudflare Blog
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog
大猫的无限游戏
大猫的无限游戏
量子位
美团技术团队
aimingoo的专栏
aimingoo的专栏
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

Yesterday17's Blog

2026 新年解密红包 / Melody Flag | Yesterday17's Blog 谈谈 Iori 的设计思路(二):如何实现一个 Showroom 录制工具? | Yesterday17's Blog 谈谈 Iori 的设计思路(一):从 Nico Timeshift 说起 | Yesterday17's Blog Iori Minyami 0.1.0 发布 | Yesterday17's Blog 2025 新年解密红包 / Melody Flag | Yesterday17's Blog 使用 Cloudflare Warp 解决罗森票务的海外登录问题 | Yesterday17's Blog How To Blog 04: The Astro v5 Era | Yesterday17's Blog 谈谈 tokio::select! 的公平性 | Yesterday17's Blog Learning Pingora 05 - Connect with TLS | Yesterday17's Blog Leaving Bytedance | Yesterday17's Blog 大橋彩香 AsiaTour「Reflection」上海公演 个人向记录 & Repo | Yesterday17's Blog Recoving from burnout - What happened? | Yesterday17 Yubikey 重建手册 | Yesterday17's Blog How To Blog 03: Heimus | Yesterday17's Blog 🪧 Blog Migration Accouncement | Yesterday17's Blog Learn Your IDE - VSCode 是如何仅重启插件的? | Yesterday17's Blog How To Blog 02: Astro❤️Password | Yesterday17's Blog How To Blog 01: Why, How, and the Future | Yesterday17's Blog Learning Pingora 04 - Establish L4 Connection | Yesterday17's Blog Learning Pingora 03 - Upstreams and Peers | Yesterday17's Blog Learning Pingora 02 - A Simple HTTP Server | Yesterday17's Blog Learning Pingora 01 - Getting Started | Yesterday17's Blog 2024 新年解密红包 / Melody Flag | Yesterday17's Blog 向新的一年飞驰——记录 2023 | Yesterday17's Blog 「サクラノ刻」对话选摘(2) | Yesterday17's Blog PGP Key Revocation 注销声明 | Yesterday17's Blog 「サクラノ刻」对话选摘(1) | Yesterday17's Blog 2023 新年解密红包 / Melody Flag | Yesterday17's Blog 『蒼の彼方のフォーリズム』通关感想 | Yesterday17's Blog 单显卡直通教程 | Yesterday17's Blog
Postfix 快速搭建只收不发的统一邮件验证系统 | Yesterday17'...
Yesterday17 · 2020-06-03 · via Yesterday17's Blog

大家好,好久半天不见,我是某昨。

邮件是我们日常生活中必不可少的一部分,通过收发邮件,我们可以方便地与他人沟通。然而,随着即时通信技术的不断发展,对于普通用户而言,需要发送邮件的情形也越来越少,邮件仿佛正在变成一个“只收不发”的容器。

尽管如此,邮件依然是必不可少的一项服务。大部分网站都支持邮箱注册畸形推广 App 手机注册的某些企业不谈也罢,正式的内容一般也会通过邮件发送。但无论怎么说,发送邮件的需求在用户端其实是在不断减少的;而对应的,在服务端接收邮件的需求也就没那么大了。邮件系统仿佛近些年 C/S 化的缩影般进化着。

言归正传,对于日常生活,我们只需要一个接收邮件的容器就够了。那为什么我们不直接用一个邮箱呢?这就和个人隐私和信息安全有关了。

从个人隐私的角度来看,将所有的邮件都归于一个邮箱的话,如果邮箱被网站泄露,我们也不知道谁是内鬼。虽然知道了谁是内鬼或许也没什么用,但这样我们就多了一种主动防御的手段。要知道,很多网站都是支持修改邮箱的,我们完全可以弃用旧邮箱,并修改对应网站的邮箱地址。或者更彻底一些——这种网站就可以销号走人了。通过使用不同邮箱注册,我们拥有了甄别网站的主动权

从信息安全的角度来看,自己搭建邮件系统意味着我们可以完全不留传统的邮箱登录界面。如果不嫌麻烦的话,我们完全可以只通过服务器读取邮件。这样的话,只要你的服务器配置了仅公钥登录,那在 RSA 体系被攻破之前,你的邮件就是绝对安全的。

由此,我们的需求已经很明确了:我们需要一个只收不发的邮件系统,并且需要统一所有邮件以方便查阅。

MX 记录

在配置之前,首先需要配置域名的 MX 记录,这也就意味着你首先需要一个有修改解析的域名。以 eqioffniwo.xyz 为例:

首先需要添加一条 A 记录(或 AAAA 记录),指向对应的服务器:

图中 IP 均为虚构
图中 IP 均为虚构

然后,需要添加一条 MX 记录,对应刚才的那条 A 记录:

因为目标是只收不发,所以到这里配置就结束了,简单吧(笑)。

Postfix

Postfix 是一个简单可靠的 SMTP 服务器,也是这次这篇文章的主角。

首先是安装:

然后是配置。配置文件位于 /etc/postfix/main.cf。这里主要需要修改的是下面两条:

mydestination = $myhostname, your.domain, another.your.domain, localhost.localdomain, localhost

这条的目的是为了使 Postfix 接收对应域名的邮件。如果没有在这里配置的话,Postfix 不会接收邮件,并且日志里会出现对应的 Postfix NOQUEUE

canonical_maps = regexp:/etc/postfix/canonical-redirect

这条的目的是配置转发,并使用一个文件来描述正则表达式规则其实只要一条。向 /etc/postfix/canonical-redirect 写入:

这样就可以把所有邮件都转发到 [email protected] 了。

最后,只需要运行这两条命令:

sudo postmap /etc/postfix/canonical-redirect

sudo postfix reload

只收不发的邮件系统就基本完成了。

查看邮件

现在已经可以收到邮件了,但如何查看变成了一个问题。默认邮件都存储在 /var/mail/<用户名> 下,这里我选择使用的是 mailutils

sudo apt install mailutils

然后就可以查看邮件了。这里不知道为什么我的邮件都被转发到了 nobody 用户下,所以还需要指定用户名:

至此,整个系统可以说就已经完成了。

更好的选择?

当然了,或许 Postfix 也不是最好的选择其实最好的选择是自己实现一个简单的 SMTP 服务器。在 GitHub 上我找到了这个项目,有空或许可以尝试研究一下吧(笑)