Email is Fine for What It is

In theory, you should be able to host your own email server. That, in turn, should allow you to exchange emails with other people with email servers. This is a form of federation, where users on each system can talk to users on another. A similar example of this on the web-side of things would be the fediverse, including Mastodon.

Email, however, has been around for a while. These days, chances are that a user of email is doing so through a big provider like Google or Microsoft. In addition to needing the expertise to set up one’s own server, there’s also maintenance, and of course, fighting spam. As such, outsourcing email is attractive, and as long as you own the domain you can always take it somewhere else.

I’ve hosted my own email, on a machine I control, for years. I have mixed feelings about recommending this to people. It works for me, but it’s not always easy, and I still do keep accounts around with the bigger providers for certain things. But, much of my email needs are self-hosted. I do it primarily because I can, and I want to be able to. I don’t want it to become a thing that only the big providers can handle, and I see this as doing my part.

I know there are others like me, but I know a lot of sentiment exists to the effect that this is a losing battle, and it’s really not worth doing. In the fight to save users from spam, it can be difficult to get emails to go through to the big providers. This makes it difficult to run your own. And if your server is on a residential IP range, good luck – this will probably get you blocked by itself. (I use an external relay.)

Large companies do manage to run successful email servers; usually there are IT staff there to maintain it, and maintain enough of a reputation that deliverability isn’t a problem. (They could also just outsource.) For an individual, I think it’s understandable to not want to deal with this. But, I think we need to take a step back and think about what email can be: a way to exchange messages between users on different computers.

Think about it: What if you didn’t need to worry about being able to deliver email to anyone with an email address? Or receive likewise? It sounds counterintuitive, after all you’d want postal mail to be able to come to you from anywhere. But maybe you also have your friend just drop something off at your doorstep, without using the public post office. Maybe they don’t even do it at your mailing address, or maybe you have a secret location in the woods. The postal service has advantages, but you don’t need it to physically exchange packages.

The idea of the tildeverse is to treat Linux/Unix servers like their own social network. What if two of these communities wanted to allow their users to exchange email with each other, and only those two? Email (technically, the simple mail transfer protocol or SMTP) works fine for this. And if you only intend to connect the two hosts, they could blacklist everything else. Or, perhaps even firewall other hosts, or just connect via VPN.

Or, maybe you and your friend just want to exchange emails with each other, and you each have an internet-connected machine running at each of your houses. You could do similar, and without either server using a block list, it’s possible to do it just with residential connections (no relay host like I mentioned earlier). Encryption would probably be a good idea for going over the internet, but otherwise the setup could be pretty simple.

Obviously, just getting a free email with a big provider is simpler. But, for anyone who wants to self-host some of their email communication, email may not have to be that complicated, so long as you’re willing to limit its scope.

Wired Network Fix on Linux Mint 19.3

I recently decided to try Linux Mint 19.3 (Cinnamon) on an old Lenovo laptop, a G530 I’ve written about previously. The install went smoothly, but upon completion, it turned out that I had no network access whatsoever – neither wired nor wireless. The wireless is a Broadcom chip, so I kind of expected that. But the wired should have been supported.

Here’s the output of lspci | grep -i net:

04:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4312 802.11b/g LP-PHY (rev 01)
07:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetLink BCM5906M Fast Ethernet PCI Express (rev 02)

Even with a wired connection plugged in, it would not show up in the NetworkManger window. I even tried creating a new connection, but this did not help. After running ifconfig, I found that the interface was in fact picked up. I was actually able to bring it up like this:

sudo dhclient enp7s0

In the above, enp7s0 is just my wired interface. Running ifconfig again I could see that it now had an IP, and I was able to ping other hosts, run updates, and even use the Driver Manager to install drivers for the wireless card, which promptly started working. For whatever reason, NetworkManager was not configuring the wired connection.

It turns out that during install, this interface was added to /etc/network/interfaces, which makes NetworkManager ignore it. All I had to do was modify this file as follows:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

# These next two lines refer to the wired network card.  They
# should be commented out.
#auto enp7s0
#iface enp7s0 inet manual

Then, I was able to run sudo systemctl restart NetworkManager and the connection started showing up in the system tray.

This is a little annoying, and I would think it’s something that could have been picked up during install, but at least it’s easy enough to fix. This is my first real experience working with Mint, and overall it seems very polished, this issue aside.