๐Ÿ’พ Archived View for bbs.geminispace.org โ€บ u โ€บ flipperzero โ€บ 14657 captured on 2024-02-05 at 12:28:59. Gemini links have been rewritten to link to archived content

View Raw

More Information

โžก๏ธ Next capture (2024-03-21)

-=-=-=-=-=-=-

Comment by ๐Ÿ˜Ž flipperzero

Re: "I've added an SMTP <=> misfin bridge service in the python..."

In: s/misfin

@gemalaya hahaahahahahahahahahahahahaha!!

Cipres, gemalaya..... give it a go now. :)

โ€” Hashnix.club Misfin Mail -- First Ever Misfin Host!

๐Ÿ˜Ž flipperzero

22 hours ago

25 Later Comments โ†“

๐Ÿ˜Ž flipperzero ยท 22 hours ago:

if everything is going well, please go ahead, send me a message at userfxnet@hashnix.club via the gemini frontend :D

๐Ÿ˜บ gemalaya [OP] ยท 21 hours ago:

@flipperzero Just registered an account and sent you a message :) I think you're running in ipv6 right ? did you set "use_ipv6" to fix it ? Nice job.

๐Ÿ˜Ž flipperzero ยท 21 hours ago:

@gemalaya you have? Ok, we've made it this far, so let's see what else we can hash out aha.

BTW just to confirm, yes, as you said I went ahead and added the use_ipv6 tag under the service main field. At this point, anytime I try to fetch for the gembox from frontend, the /mail/fetch URL seems to produce a blank. When I try to use gembox-read from commandline, I get this.

Traceback (most recent call last):
  File "/tmp/.mount_misfincAgtKn/opt/python3.9/bin/misfin", line 8, in <module>
    sys.exit(run())
  File "/tmp/.mount_misfincAgtKn/opt/python3.9/lib/python3.9/site-packages/misfin/cli.py", line 465, in run
    return cli()
  File "/tmp/.mount_misfincAgtKn/opt/python3.9/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/tmp/.mount_misfincAgtKn/opt/python3.9/lib/python3.9/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/tmp/.mount_misfincAgtKn/opt/python3.9/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/tmp/.mount_misfincAgtKn/opt/python3.9/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmp/.mount_misfincAgtKn/opt/python3.9/lib/python3.9/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/tmp/.mount_misfincAgtKn/opt/python3.9/lib/python3.9/site-packages/misfin/cli.py", line 449, in gembox_read
    from misfin import gemboxreader
  File "/tmp/.mount_misfincAgtKn/opt/python3.9/lib/python3.9/site-packages/misfin/gemboxreader.py", line 8, in <module>
    from .letter import GemBox
ImportError: cannot import name 'GemBox' from 'misfin.letter' (/tmp/.mount_misfincAgtKn/opt/python3.9/lib/python3.9/site-packages/misfin/letter.py)

Refreshing the page on it's own, it says I have 0 messages in my inbox right now, which I know must be untrue if the gembox produced and you were able to send to me successfully. Any idea what could be happening?

๐Ÿ˜Ž flipperzero ยท 20 hours ago:

@gemalaya what's the address you registered with? I'll see if I can send a message, and in turn see if you're able to fetch the gembox so you can find and read that message then reply to it.

๐Ÿ˜บ gemalaya [OP] ยท 20 hours ago:

@flipperzero I registered as cipres@hashnix.club

๐Ÿ˜บ gemalaya [OP] ยท 20 hours ago:

@flipperzero Just checked the gemboxreader's code, the class name on line 8 is indeed wrong, will fix that ..

Are you still running it with sudo ? I advise against running it as root. Do you see any errors, tracebacks in the logs ? What does "find <srvdir>" show ? You should see "cipres.pem" in the identities directory, and some folders in the "gemboxes" directory.

๐Ÿ˜Ž flipperzero ยท 20 hours ago:

@gemalaya let me know once it's newly compiled again in repo or appimage, I'll install it ASAP.

ATM the server is down but you're right, I'm going to go ahead and chmod + chown the executable to a dedicated daemon/user setup.

๐Ÿ˜Ž flipperzero ยท 20 hours ago:

last running i hadn't noticed anything too significant save for this popping up every now and then

INFO:pyrate_limiter:(sync)leaking bucket: <pyrate_limiter.buckets.in_memory_bucket.InMemoryBucket object at 0x7fc01b128430>, 0 items
INFO:pyrate_limiter:(sync)leaking bucket: <pyrate_limiter.buckets.in_memory_bucket.InMemoryBucket object at 0x7fc01b128d30>, 8 items

I'm not really sure what it could be alluding to or mean in this instance though. It prints back a value of conclusively set items which seem to vary between intervals.

๐Ÿ˜บ gemalaya [OP] ยท 19 hours ago:

@flipperzero Those periodic messages are about the requests rate limiting. In the config file you can configure how many requests per minute a client is allowed to send to the server.

Indeed, chown -R the service directory and run it as a user, that could be the reason why the messages can't be stored.

๐Ÿ˜บ gemalaya [OP] ยท 19 hours ago:

The rate limiting is based on this algorithm:

โ€” https://en.wikipedia.org/wiki/Leaky_bucket

When you see "8 items" in the logs, it means that there are 8 requests in the bucket that are being handled. The default limit is 100 requests / minute (per misfin sender identity).

๐Ÿ˜Ž flipperzero ยท 19 hours ago:

@gemalaya the server is back up, and I've sent a message to your address, it should be good to go for another test that hopefully yields better results

๐Ÿ˜บ gemalaya [OP] ยท 18 hours ago:

@flipperzero Do you see any errors in the logs ? When i send with the CLI he server replies code 60 (certificate required). I gotta go, i'll think about what this could be related to but, right now i'm thinking that it could be related to ipv6, your misfind only listens on an ipv6 socket, and all the tests with the implementation were with ipv4 connections.

Does it start with listen_on = "0.0.0.0:1958" WITHOUT setting "use_ipv6" ? Or with listen_on = "170.75.170.116:1958" (seems to be hashnix's public ip) ?

๐Ÿ˜Ž flipperzero ยท 18 hours ago:

@gemalaya you have a happy sunday. this is that popped up fortunately, that now there is time to work out any glitches and refine from there. expect word about the server within the next hour. thanks always

๐Ÿ˜Ž flipperzero ยท 17 hours ago:

@gemalaya Aaaahh wow. I see now. Yeah it seems to be working just fine with localnet addresses like 0.0.0.0 and it loads over the domain name without issue from external connections. Wow!

BTW I wasn't able to find anything in any active misfind logs concerning that page you've run into, though i'll let you know that I have run into that page when I first attempted to send a message. I just went and tried again and it went through without issue. I also notice it happens when a message exceeds or barely reaches character length limit right at peak.

๐Ÿ satch ยท 16 hours ago:

@flipperzero if you would be interested in setting up Skylab as an alternative misfin frontend let me know and I can help make sure it works smoothly. I think it would be a great fit!

๐Ÿ˜Ž flipperzero ยท 16 hours ago:

@satch I've been thinking the same, matter of fact, i'd be happy to test out the server! I'll follow the steps and see if I'm able to have both broadcast correspondingly over different ports if possible. I'll let you know within the next few hours thanks :D

๐Ÿ satch ยท 16 hours ago:

btw I made a misfin account on hashnix.club and it works to send to myself but I get a "60 certificate required" error when I try to send mail back :/

Also right now adding accounts is manual for Skylab which might not be great for your setup, but it shouldn't be too hard to automate by editing the bash script included in the Git repository.

๐Ÿ˜Ž flipperzero ยท 16 hours ago:

@satch hmm this might require further analyzing.

Imma send a message to your address (satch@hashnix.club?) and we'll see what goes on from there. The cert is assigned to root page as well? Also, is this at minimal character length or at max limit? Lmk, I'll check in more the next couple hours.

๐Ÿ satch ยท 15 hours ago:

Hey sorry it's satchlj@hashnix.club

๐Ÿ satch ยท 15 hours ago:

Also let me clarify, the 60 error is not on the gemini frontend but the misfin response status when i try sending mail to satchlj@hashnix.club from mail@satch.xyz

And it's minimal length, nowhere near max

๐Ÿ satch ยท 15 hours ago:

Update: I modified my client to treat 60 like a 59 error and it sending works now. @gemalaya please fix your status codes because I am receiving a certificate error when I send a Misfin(C) request instead of a 59 Malformed request which my client was set up to handle.

๐Ÿ satch ยท 15 hours ago:

But NOW I'm getting a 50 Cannot allocate mailbox error which I don't know what to make of

๐Ÿ˜Ž flipperzero ยท 13 hours ago:

@satch hmm damn that's strange, I hope that's not happening to other people's mailboxes rn :S

๐Ÿ˜บ gemalaya [OP] ยท 6 hours ago:

@satch Hey, thanks. Yeah i saw in the code where it's sending the 60 error, fixing that, it should send a 59 if it can't handle the request's format.

๐Ÿ˜บ gemalaya [OP] ยท 5 hours ago:

@satch @flipperzero Just pushed the fix, it will send a 59 error now when it can't handle the request. I'll merge the misfinC branch soon, sorry i didn't have much time to work on this lately.

Original Post

๐ŸŒ’ s/misfin

I've added an SMTP <=> misfin bridge service in the python implementation. Emails sent to the SMTP service will be delivered to the gembox of the recipient(s) if they have a misfin identity on the server. Message delivery is rate-limited, only non-multipart text messages accepted. Dunno if that's useful to anyone. If you run a big misfin mailserver and you want compatibility with SMTP, it's just 2 lines to add in the config file .. [https link]

๐Ÿ’ฌ gemalaya ยท 29 comments ยท 1 like ยท 2023-10-16 ยท 4 months ago