Tôi đang sử dụng MIMEText để tạo email từ đầu trong Python 3.2 và tôi gặp sự cố khi tạo thư có ký tự không phải ascii trong chủ đề.Mã hóa tiêu đề trong MIMEText
Ví dụ
from email.mime.text import MIMEText
body = "Some text"
subject = "» My Subject" # first char is non-ascii
msg = MIMEText(body,'plain','utf-8')
msg['Subject'] = subject # <<< Problem probably here
text = msg.as_string()
Dòng cuối cùng mang lại cho tôi những lỗi
UnicodeEncodeError: 'ascii' codec can't encode character '\xbb' in position 0: ordinal not in range(128)
Làm thế nào để nói với MIMEText rằng đối tượng không ascii? subject.encode('utf-8')
không giúp gì cả, và dù sao tôi đã nhìn thấy những người sử dụng chuỗi unicode không có vấn đề trong câu trả lời khác (xem ví dụ Python - How to send utf-8 e-mail?)
Edit: Tôi muốn thêm rằng cùng một mã không cho bất kỳ lỗi nào trong Python 2.7 (nghĩ rằng điều đó không có nghĩa là kết quả là chính xác).
Tôi đánh giá cao việc bạn đang cố trợ giúp, nhưng tiếng Anh là bắt buộc đối với Stack Overflow. Vui lòng dịch câu trả lời này sang tiếng Anh. – mhlester