Skip to content

UnicodeEncodeError when sending e-mails with some iso-8859 characters (€ symbol) #448

Description

@mlorant

Describe the bug
On last version (nylas==6.14.0), I'm getting an UnicodeEncodeError when sending an e-mail with a message body payload containing some special characters. The € currency symbol raise the error for example.

To Reproduce
With the following payload and Nylas client usage:

from nylas import Client

message = {
    'subject': 'Test envoi avec accent', 
    'attachments': [], 
    'from': [{'name': 'Maxime L', 'email': 'some-test@address.com'}], 
    'cc': [], 
    'bcc': [], 
    'to': [{'name': '', 'email': 'some-address@example.com'}],
    'reply_to': []
    'body': '<p>À noter que lorem ipsum dolor sit...même éàçéàéà<br /><br />€€€€ ça c\'est de l\'euro</p>\r\n<br />---<br />Me', 
}

client = Client("some-api-key", "some Nylas root URL")
client.messages.send(
     "123456abcdef",  # my grant is valid
     request_body=message
)

The following exception is raised:

ERROR 'latin-1' codec can't encode characters in position 430-433: Body ('€€€€') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.
Traceback (most recent call last):
  File "my_code.py", line 419, in send
    client.messages.send(
  File "~venv_packages/nylas/resources/messages.py", line 196, in send
    json_response, headers = self._http_client._execute(
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  [...]
  File "/usr/local/lib/python3.12/http/client.py", line 1327, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.12/http/client.py", line 1372, in _send_request
    body = _encode(body, 'body')
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/http/client.py", line 166, in _encode
    raise UnicodeEncodeError(
    
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 430-433: Body ('€€€€') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.

(characters position slightly changed as I simplified my payload for anonymization)

Expected behavior
E-mail sent without errors, which is the behaviour on nylas 6.13.0 package and earlier.

SDK Version:
6.14.0.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions