I must admit that I was a bit shocked when I realized that the author had used javascript for this task. At first I assumed that he was scripting some webmail interface but then I saw that he was using 'emailjs-imap-client'. I understand that people use what they're familiar with and there seems to be a vibrant ecosystem for JS outside of the browser but it'll never not be weird seeing it take over what would once ha…
Modern JavaScript/TypeScript is fine. Especially when compared to Perl, of all languages.
Mining my mailbox for top email service providers
71–80 of 110 posts
Re: Mining my mailbox for top email service providers
#72Earlier quoted context omitted.
This is a brilliant idea, if only it were updated for the latest gmail UI
https://www.inboxsdk.com/ lets you pretty easily manipulate the Gmail UI if you want to have a crack at it.
Let me know if we can help.
Re: Mining my mailbox for top email service providers
#73The emails in your mailbox aren't yours to do with as you please - they're all still owned by their original sender, who has given you an implicit license to read them, and store them for later re-reading.
You don't really have rights to datamine, aggregate, train AI on, post stats about, etc. the data in those emails. Its a violation of the rights of the original sender to do it without permission.
Re: Mining my mailbox for top email service providers
#74[Nitpick] Instead of this: ;(async function () { try { // All your code } catch (e) { console.log(e) } })() Just do this: ;(async function () { // All your code })().catch(console.error) Overuse of try/catch is probably the #1 mistake I see when people use async/await.
Starting a line with ; is just plain weird and the last bit })() seems like German, where all the stuff that you technically not need to understand the sentence is at the end.
Maybe someone can explain with JavaScript developers love anonymous functions so much. Why not just name your function and make the whole thing a bit more readable.
Re: Mining my mailbox for top email service providers
#75Re: Mining my mailbox for top email service providers
#76Earlier quoted context omitted.
> So it'd be very interesting to see what % of emails for each provider landed in Inbox vs Promotions/Spam/Junk folder. Are those percentages really a good measure of deliverability? I mean, a significant portion of “one million dollars for you” scams in my Gmail spam folder are from @gmail.com addresses; that doesn’t say anything about gmail.com to gmail.com deliverability.
Gmail is somewhat a special case because email services are kinda forced to accept inbound Gmail, even though it's quite a large source of scams and phishing attempts today. But for others, they'll still readily get blacklisted for a little while here and there. I was thinking about spam as I read the post too, since this is a problem I get to deal with almost daily. Marketo has a terrible signal-to-noise ratio and i…
Unless I misunderstood, the person you replied to literally says he has emails from @gmail.com throwing in his Gmail spam filter. So not sure why you mention Gmail is special here (regardless if it's true or not).
Re: Mining my mailbox for top email service providers
#77Earlier quoted context omitted.
It would be more readable in almost any other widespread language, and I'm saying that as someone who does a lot of JS.
The biggest problem I have with JS in term of readability is IIFE. I know what it does, but it just looks ugly when you have hundreds of them in a program. The "semicolon in front" is even worse, needless to say. There gotta be a better way to design syntax for an async language.. right?
Re: Mining my mailbox for top email service providers
#78It's interesting that this is missing a lot of major enterprise marketing email providers. The author clearly isn't subscribing to things like Best Buy's weekly deal email, or Target cart reminders.
It's missing basically every major email marketing provider. * Salesforce * IBM * Contact Contact * Campaign Monitor * HubSpot * ActiveCampaign etc etc
It can be for various reasons:
* They can use these services themselves
* They can support full customization of domains, including for the "message-id" and the "received" headers.
I'm working as SRE in a fairly large marketing provider (not sure in term of %, but we provide services for quite a few large brands sending several millions emails per day), and we do this full customization by default. There are other way to recognize us (other headers in the email or the pattern for the tracked url for example), but the one described in the article will not work.
It would also be interesting to be able to detect which MTA is used by these service providers. Is it an in-house one or an off the shelf one? The two off the shelf ones I know for mass sending are Momentum and PowerMTA which are both owned by Sparkpost but they might be others.
Re: Mining my mailbox for top email service providers
#79Earlier quoted context omitted.
The biggest problem I have with JS in term of readability is IIFE. I know what it does, but it just looks ugly when you have hundreds of them in a program. The "semicolon in front" is even worse, needless to say. There gotta be a better way to design syntax for an async language.. right?
Wait, why do you need IIFE in post-ES6 JS? Just use let/const.
Re: Mining my mailbox for top email service providers
#80[Nitpick] Instead of this: ;(async function () { try { // All your code } catch (e) { console.log(e) } })() Just do this: ;(async function () { // All your code })().catch(console.error) Overuse of try/catch is probably the #1 mistake I see when people use async/await.
Either way, I find the syntax of both to be extremely ugly. Arguably this may simply be me not getting JavaScript. Starting a line with ; is just plain weird and the last bit })() seems like German, where all the stuff that you technically not need to understand the sentence is at the end. Maybe someone can explain with JavaScript developers love anonymous functions so much. Why not just name your function and make t…
Love the language, hate the popularity of anonymous functions and non-descriptive variable names.
My production code as a sample. http://designbymobi.us/wp-content/uploads/2020/02/rabbitmq-c...