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 <[email protected]>
To: [email protected]
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.
Test
it seems to hav wonky timestamp ? it appears to me to be sent -21s ago XP
This is an excellent idea. It’s gateways like this that will continue to offer options that are not available on other platforms.
Look forward to seeing how this evolves!
I hereby bestow upon ye the title of “Interoperability Warlock”, for ye are tampering with forces beyond this mortal realm.
Sounds awesome! Good work. Does it also send you an update of how many upvotes you get? (Random thought)
Good luck.
Does it also send you an update of how many upvotes you get?
Well, I receive the corresponding ActivityPub "Like"s from the servers. But right now I just drop the message. I suppose that could turn into a mail message with a body like “user X liked your post” or something, but that doesn’t feel like a natural mapping to me.
I’m also one of those people that hides upvote & boost counts in my Mastodon app ;)
Thats actually very smart imo.
So this comment I am writing is going to appear as an email in a chain? Neat!
So this comment I am writing is going to appear as an email in a chain? Neat!
Yep, that’s what it looks like at my end!
This comment has a timestamp in the future. It says “in 8 hours” for me.
Oh huh. Good spotting.
After some quick digging… seems like a bug in the Lemmy web UI. I think= it’s assuming the timestamp is always UTC. Are you using the UI at https= ://lemmy.blahaj.zone ?
The timestamp of the source message is has the UTC+11 timezone (where I a= m): https://apubtest2.srcbeat.com/otl/outbox/1709878623152651007 And I no= tice that in the old-Reddit-like interface at https://old.lemmy.world/com= ment/8236475 it renders as a time in the past.
It’s only on the blahaj.zone web UI. Lemmy.world has a newer version.
Dude was so preoccupied about whether he could, that he never stopped to think whether he should.
Oh I stopped and thought whether I should. The answer was “probably not” every time…
Excuse my ignorance but how will the fediverse defend itself against email spam?
deleted by creator
Defederation would be my guess
But if you can keep spamming our (heh) a new site for like 99c a domain name, you could do this a lot despite getting banned.
The alternative is something like FediSeer where you can get sites guaranteed by others and block anything not given the all-clear, but that really harms the ability for new sites to appear.
But if you can keep spamming our (heh) a new site for like 99c a domain name, you could do this a lot despite getting banned.
I mean you already could do that with something like ActivityPub proxy or just change your instance domain every time. If that’s such a risk, why aren’t people doing it now?
The alternative is something like FediSeer where you can get sites guaranteed by others and block anything not given the all-clear, but that really harms the ability for new sites to appear.
If something like this were to gain lots of traction I’d hope it would be something not too difficult to implement by smaller new sites.
What really sucks is the situation with email now: it’s really tricky to get stuff delivered if you’re not Google/Microsoft. The barrier to entry is way, way too high :(
The alternative is something like FediSeer where you can get sites guaranteed by others and block anything not given the all-clear, but that really harms the ability for new sites to appear.
If something like this were to gain lots of traction I’d hope it would be something not too difficult to implement by smaller new sites.
What really sucks is the situation with email now: it’s really tricky to get stuff delivered if you’re not Google/Microsoft. The barrier to entry is way, way too high :(
I joined fediseer with this lemmy instance. I don’t know what’s going to happen with your self-built software, but getting a guarantee is easy, if your instance looks credible. I’m not aware of anyone that uses it as a filter at this point either.
Anyway, this is an awesome project. If you keep working on it and need a fediseer guarantor for the site, I’m happy to do that.
See their lemmy community: lemmy.dbzer0.com/c/fediseer
Oh wow awesome. Thanks so much!
It needs a bit more fleshing out, removing a bit of hardcoding too. And of course I want to publishit under an open source licence too. Thanks for the tip - I’ve written it down in the growing TODO file! :)
Excuse my ignorance but how will the fediverse defend itself against email spam?
That’s a good question. Right now there’s very little stopping people from spinning up some ActivityPub server and blasting out messages. I’m actually surprised at how little ActivityPub spam there is currently.
One of the awesome things about the fediverse is how anti-commercial it is right now. Maybe it’s not a major target for spam because there’s not a lot of money in it.
When you specify
To: [email protected]
how does the bridge know if you meanthttps://aussie.zone/c/localtesting
orhttps://aussie.zone/u/localtesting
instead?When you specify
To: [email protected]
how does the bridge know if you meanthttps://aussie.zone/c/localtesting
orhttps://aussie.zone/u/localtesting
instead?Good question
The process of going from that email-like address to an ActivityPub Actor (https URL) is done by WebFinger. So whatever we get back from that lookup is who we send the message to. For example, when we look up
[email protected]
we get this response (truncated for readability):{ "rel": "self", "type": "application/activity+json", "href": "https://aussie.zone/c/localtesting", "properties": { "https://www.w3.org/ns/activitystreams#type": "Group" } }
The value for
type
,application/activity+json
tells us that we can send ActivityPub stuff to it.You can play around with WebFinger in the browser.
- your account: https://webfinger.net/lookup/?resource=binomialchicken%40lemmy.blahaj.zone
- my one: https://webfinger.net/lookup/?resource=otl%40apubtest2.srcbeat.com
Hope that makes sense?
Very cool!
Hi there! Looks like you linked to a Lemmy community using a URL instead of its name, which doesn’t work well for people on different instances. Try fixing it like this: [email protected]
But as we probably know, the fediverse is not Mastodon; it’s really ActivityPub.
It’s not though! Fediverse = federated universe, and encompasses all federate platforms. I learned this recently myself also.
This is interesting, but have you considered porting to Usenet? It’s basically a shared inbox thats whole intent is threaded conversation. Sound familiar?
Is Usenet opensource?
It’s a protocol, made with open RFC docs.
TIL. Always thought it was software.
This is interesting, but have you considered porting to Usenet?
Yes that’s on the list! Now that I have a whole bunch of RFC822 files, (in Maildirs) I can also serve them over read-only NNTP. This was the original goal actually - I like the idea of using the simpler protocol NNTP over IMAP to read stuff.
Reply All: Hello?
You’re weird. I like you.
This is cool. Keep working on it.
Hmmm 🙃
📧📧📧