What have I done?! My abomination of an idea of bridging my email and ActivityPub progresses. If you see this message, something is working! Comments replies are welcome as it's a good test of this system :)
People keep saying ActivityPub is a lot like email. If it's so similar to email, could I use my email client to interact with the fediverse?
Previously I did this by writing a SMTP interface to the Mastodon HTTP API. That worked. But as we probably know, the fediverse is not Mastodon; it's really ActivityPub. The real deal would be working with ActivityPub directly, not the Mastodon HTTP API.
And that's now (mostly?) working! In shonky diagram form, sending looks like this:
laptop --SMTP--> my_server --ActivityPub--> fediverse
Replies look like this:
fediverse --ActivityPub--> my_server --SMTP--> mailbox <--IMAP-- laptop
my_server
translates back and forth between ActivityPub messages and
mail messages.
For example given the message:
Date: Wed, 6 Mar 2024 16:37:59 +1100
From: Oliver Lowe <otl@apubtest2.srcbeat.com>
To: localtesting@aussie.zone
Subject: test 2
test hello world!
The following ActivityPub message is created:
{
"@context": "https://www.w3.org/ns/activitystreams",
"id":"https://apubtest2.srcbeat.com/outbox/1709703480070628170",
"type":"Note",
"name":"test 2",
"to": ["https://aussie.zone/c/localtesting","https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://aussie.zone/c/localtesting"],
"published":"2024-03-06T16:37:59+11:00",
"attributedTo":"https://apubtest2.srcbeat.com/actor.json",
"content":"test hello world!",
"mediaType":"text/markdown"
}
There's still a lot of bugs (of course) and unimplemented bits (of course). I can't call this a proper fediverse service yet. I'm going to roll with this for a bit and see how it holds up.
Huh wow didn't know Teams didn't have multiple screen sharing. Nice work.
Something does irk me about the whole approach, though. We have accomplished some amazing stuff in the software world. But Jesus almighty we have some serious interoperability problems, to the point where we literally just send pixels to one another because that's all we've got. Reminds me of that glib statement "the web has become just 4 websites full of screenshots of each other" (or however it goes).