Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
MailCrab (tweedegolf.nl)
196 points by lukastyrychtr on March 5, 2023 | hide | past | favorite | 34 comments


In this space there is also Mailpit[0], written in GO, runs from a single binary (also has Docker images).

[0]: https://github.com/axllent/mailpit


According to Discord, Go was (or at least it used to) cause huge latency spikes because of it's GC - they've rewritten it in Rust and now it's A LOT faster, without any latency spikes.

https://discord.com/blog/why-discord-is-switching-from-go-to...


300ms latency spikes on a particularly pathological production workload are irrelevant for the stated use case of a test email server.


When does one decide whether an environment is a test? I would like to test SMTP notifications of a staging server at work, approximately 15 million emails to be sent. This is NOT production, but those 300 ms spikes would be unacceptable. That Rust rewrite seems to be a godsend.


The GC iterations they were talking about were during incredibly high throughout. Most users would not notice this. It's not some general indictment of Go.


Which is a factor that really does not matter for a test server


The go GC has kept evolving since.


A tiny cross-platform binary, a tiny docker image image? That’s every bullet point but the written in rust one!


For shared non-production environments, I’ve always been a big fan of Mailtrap.io in this space.

Same idea of faking delivery but puts it in a location where non-devs can access and review it.

https://mailtrap.io/


You could also look at https://imitate.email

Similar idea to mailtrap but has a web widget so that you can embed it in the projects you’re building, improving the UX for devs and testers.

(Disclaimer: It’s mine!)


Also, there is https://mailsnag.com that has more generous free plan and error simulations. Helped me uncover couple bugs in my projects


There's also: https://usehelo.com


I don't know if the author is on here, but I wonder what it was like doing the frontend in Rust (Yew). How does the developer experience compare to Vue, I suppose?


Hi, the author of MailCrab here :-) Yew is nice, especially if you enjoy writing Rust. However, it definitely takes more time and dedication than writing a frontend in React, Vue etc. Yew and the surrounding ecosystem keeps improving, and it is way more usable than when I first tried it. The tooling I used (Trunk https://trunkrs.dev/) is very minimal with respect to the number of features compared to many of the popular web-bundlers (Webpack etc.) but it works well for most simple use-cases.


One of the things I like about Django is the builtin support for a console backend for emails

In dev it means you can have sent emails get logged to the terminal which makes debugging easier.

But it only really works well with text emails, this seems like a more robust solution


The terminal solution is handy but sometimes it fails because you could end up with a sign in link or some type of link with a very long token that wraps to multiple lines making it impossible to click.

Rails also prints emails to the terminal and has a backend solution that doesn't really send emails out but I still prefer using MailCatcher to display them in a UI (it has both amd64 and arm64 Docker support[0], real-time updates and a ~25mb compressed Docker image).

[0]: https://hub.docker.com/r/schickling/mailcatcher/tags


It also just works for all frameworks if you hack the receiver and BCC: emails you want to test to yourself to make sure they're actually being sent and look alright.


Yep very nice if all you need is an email or two, maybe an activation code or link.

Definitely an email heavy application benefits from something more advanced like MailCrab

PS Ruby on Rails also logs emails to the console


That’s nice since MailHog seems dead. I’ve had PRs open for their SMTP server package for years. One for a bug, the other to support Unicode recipient addresses.

Once I got one of their attention on Twitter and they said they would have it looked at the next week, but nothing seemed to happen.


I have used the Java smtp test email server FakeSMTP which has been around since around 2015. It can run via CLI as a service with no GUI, or with a GUI interface via Swing:

http://nilhcem.com/FakeSMTP/


Embarrassed to ask, so what’s the use case for this?


One use-case I can think of is integration and validation tests. Send emails, then use the API to programmatically retrieve and check content.


It's really useful during development to test email send functionality in your app.


Longtime mailhog user here; this looks like a nice improvement for cold start developer environments! Another option in the same space (emphasis container size) is https://github.com/inbucket/inbucket


It's finding systems like this that make HN valuable from time to time. I didn't even "think" to look for a system like this, and I could use it right now, and I find there are multiple other ones similar in the same posting from comments.


This looks quite nice and lean, we started using https://github.com/maildev/maildev especially for the arm64 support.


Looking forward to trying this out. I do a lot of email testing locally for paced.email and vend.email. MailHog is 90% of the way there, but seems like it's fallen by the wayside...


Tweede golf, means "second wave" in dutch.


As someone who recently moved to NL and is trying to learn Dutch, I've found that translating plurals is probably the most annoying part of my life at the moment.

"De golven" is the plural form, so "golf" makes sense, but Google Translate doesn't really know that. It did suggest "golven" in the "See also" section, but it wasn't obvious at first. Especially when the sport golf is also spelled the same way!

Other things I have trouble with is sentence structure, but that's not really annoying so much as it is frustration bourn of ignorance.

I'll get there one day!


Which sounded like a covid thing to me. Must have been interesting to watch the access logs for tweedegold.nl in fall 2020! (That is, I assume the name was chosen before covid but the About page doesn't say.)


Like the Ruby mailcatcher?


Typo

* _its_ own bullet


Thank you, fixed it :-)


snibbety snab




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: