Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

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

未關閉
#448 1 則留言 0 個 reaction 已指派 2 人 在 GitHub 檢視

@pengfeiye 已經在處理了。

開始於 2026年1月15日。

評估

這個 Issue 還沒有評估資料。

描述

bug

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': '[email protected]'}], 
    'cc': [], 
    'bcc': [], 
    'to': [{'name': '', 'email': '[email protected]'}],
    '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.

主要語言
Python
星號
109
分支
85
平均合併
8 小時 41 分鐘
30 天內合併 PR
3

環境準備

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

nylas/nylas-python 的其他 Issue

查看 nylas/nylas-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。