Emails containing special characters rejected by Postmark

I am using the Postmark API to send out transactional emails and it works great.
However, I noticed that the email loïc.james@gmail.com triggered an error because of the accented ï.

Here is the error received: Error code: “{“ErrorCode”:300,“Message”:“Error parsing ‘To’: Illegal email mailbox ‘loïc.james’ in address ‘loïc.james@gmail.com’.”}”

How can I force Postmark to send out the transaction email to that email address loïc.james@gmail.com? Should I use Quoted-Printable characters, if yes how? Note that I do not want to change loïc.james@gmail.com to loic.james@gmail.com because the user’s email is indeed loïc.james@gmail.com and this is what the user uses also as a login to my app

PS : Postmark mentions here that “some special characters may not be processed correctly through Postmark. We recommend using Quoted-Printable as it’s widely compatible with mail processing systems.”

It looks like they do not allow email mailbox names that do not match this regular expression: ^[a-z0-9.!#$%&’`*+-/=^_{}|~]+$

You may want to reach out with their support to ask if they have other options.

I reached out to Postmark and here is their answer, not sure what to do with it to be honest:
“At this time, we don’t support unicode characters in email addresses (this is something we hope to introduce support for in the future, I’ve added you to our feature request for that).
To support sending to this address, it would need to be a punycode address without a diaeresis, and your application would need to handle the conversion of that to recognize it. I’m sorry I don’t have a better answer here, as I’m sure that does complicate things a little for you.”

That make sense.
Some context from wikipedia

In you example it will be transformed into xn--loc-0ma.james@gmail.com.

You will need a plugin or an external api to make the conversion.
You can convert the email on signup and save it in the database. Then you can use that version to call the postmark api.

I see… Wow Postmark is making things complex…
I’d love to find a way to natively convert loïc.james@gmail.com to its punycode equivalent xn--loc-0ma.james@gmail.com within Bubble, ie. without an external API or plugin but not sure it’s doable.
Thank you @dorilama anyways, your answers are super helpful

1 Like

This topic was automatically closed after 70 days. New replies are no longer allowed.