# Le email di reset della password sono "non transazionali"?

**URL:** https://meta.discourse.org/t/are-password-reset-emails-non-transactional/56569
**Category:** Support
**Created:** [30 Gennaio 2017, 4:43am UTC](https://meta.discourse.org/t/are-password-reset-emails-non-transactional/56569 "2017-01-30T04:43:48Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![chrisgalpin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisgalpin/32/212290_2.png) [@chrisgalpin](https://meta.discourse.org/u/chrisgalpin)
#### Post date: [30 Gennaio 2017, 4:43am UTC](https://meta.discourse.org/t/are-password-reset-emails-non-transactional/56569/1 "2017-01-30T04:43:48Z")

</div>

I had a user unable to receive their password reset email. I checked the logs at SparkPost and it said because they were on a suppression list there. So I checked SparkPost’s suppression list and it listed the user, but said their action had been to “Unsubscribe” from “non-transactional” emails.

I googled a bit to see what that meant and I got the impression that non-transactional emails aren’t directly requested by the user, e.g. notifications, summaries, newsletters, that type of thing.

I removed the user from this suppression list and they were able to receive Discourse’s password reset email.

Shouldn’t the password reset email have been considered transactional since it was directly requested and gone through anyway? Or do I misunderstand the terms?

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [30 Gennaio 2017, 5:01am UTC](https://meta.discourse.org/t/are-password-reset-emails-non-transactional/56569/2 "2017-01-30T05:01:09Z")

</div>

That is a question for SparkPost, not us…

---

<div class="post-metadata">

### Author: ![chrisgalpin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisgalpin/32/212290_2.png) [@chrisgalpin](https://meta.discourse.org/u/chrisgalpin)
#### Post date: [30 Gennaio 2017, 5:12am UTC](https://meta.discourse.org/t/are-password-reset-emails-non-transactional/56569/3 "2017-01-30T05:12:04Z")

</div>

Okay I thought maybe it was some sort of setting on your end per email. That explains the whole thing then! Thanks.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [30 Gennaio 2017, 6:14am UTC](https://meta.discourse.org/t/are-password-reset-emails-non-transactional/56569/4 "2017-01-30T06:14:31Z")

</div>

If they have any guidance on what makes an email “transactional” vs. not, feel free to share. AFAIK we follow best practices for email.

---

<div class="post-metadata">

### Author: ![chrisgalpin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisgalpin/32/212290_2.png) [@chrisgalpin](https://meta.discourse.org/u/chrisgalpin)
#### Post date: [30 Gennaio 2017, 7:25am UTC](https://meta.discourse.org/t/are-password-reset-emails-non-transactional/56569/5 "2017-01-30T07:25:57Z")

</div>

According to [Remove List-Unsubscribe Header](https://support.sparkpost.com/customer/portal/articles/2458291):

> The SparkPost API Transmissions endpoint allows you to mark an email as transactional with the attribute options.transactional.

[Here it is in their Transmissions API Reference.](https://developers.sparkpost.com/api/transmissions.html#header-options-attributes) Obviously this is SparkPost’s API, I’m not sure how the field appears on the actual outgoing email header.

* * *

Okay so I checked their template editor and you can send test emails marked as both Transactional or not. So I sent myself one of each. Compared the headers in Beyond Compare.

Only real differences are in _DKIM-Signature_, _X-MSFBL_, and _List-Unsubscribe_. ([This](https://support.sparkpost.com/customer/portal/articles/2164371-what-are-the-differences-between-cc-bcc-and-archive-recipients-) points out that the List-Unsubscribe value is a part of the DKIM-Signature, so that explains that.)

After poking around a bit I found an online (because lazy) [Base64 decoder that was robust enough](http://www.utilities-online.info/base64/) to let me view X-_MSFBL_ and _List-Unsubscribe_.

X-MSFBL contains the following fields: `b, customer_id, friendly_from, g, ip_pool, ip_pool_raw, message_id, r, rcpt_meta, rcpt_tags, sending_ip, subaccount_id, template_id, template_version, tenant_id, transmission_id`

List-Unsubscribe contains the following fields: `customer_id, friendly_from, ip_pool, ip_pool_raw, mailfrom, message_id, rcpt_meta, rcpt_tags, rcpt_to, sending_ip, subaccount_id, template_id, template_version, tenant_id, transmission_id`

Same fields have the same values between them.

Anyway the important bit, I compared both X-MSFBL and List-Unsubcribe between the transactional and non-transactional emails and found… ! Essentially nothing. The only differences are sending IPs (meaningless) `message_id` and `transmission_id`. (Oh and `template_version`… it has the name of my test template from SparkPost dashboard and version 1 happens to be transactional, version 2 non-transactional, so that bit was accurately reflected.)

The beginning of X-MSFBL and List-Unsubscribe had some short data I couldn’t base64 decode… so that’s an unknown.

But basically looks like there isn’t any sort of obvious marker in the email header itself that could maybe be used to signal SparkPost. Bummer. 😢 Obviously their API just does what was specified and has no reason to put anything in there since that would be after-the-fact… I think… brain hurting.

---

<div class="post-metadata">

### Author: ![chrisgalpin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chrisgalpin/32/212290_2.png) [@chrisgalpin](https://meta.discourse.org/u/chrisgalpin)
#### Post date: [30 Gennaio 2017, 7:41am UTC](https://meta.discourse.org/t/are-password-reset-emails-non-transactional/56569/6 "2017-01-30T07:41:35Z")

</div>

Akismet hid my post temporarily, heh heh. I’ll just put my edit in a new post:

I’m out of my depth at this point but I’m assuming that Transmissions API is all SparkPost specific stuff and Discourse’s email sending uses something generic… doesn’t detect and do different things for different mailing providers… though I’ve no idea.

Amusing that [in their own infographic](https://media.sparkpost.com/uploads/2016/05/TransactionalEmailInfographic2-1.png?_ga=1.52209513.1348162025.1485558703) “Password resets” are the first thing they list for transactional emails. Safe to say they’d have detected that if their system worked that way… the “mark as transactional” thing must just be specific to their outgoing API… darn them. Oh well I’ll live with it. 😉

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [8 Giugno 2024, 12:45pm UTC](https://meta.discourse.org/t/are-password-reset-emails-non-transactional/56569/7 "2024-06-08T12:45:04Z")

</div>

Questo argomento è stato chiuso automaticamente dopo 2686 giorni. Non sono più consentite nuove risposte.
