
이러한 문제를 해결하기 위한 방법은 두 가지가 있습니다.
1. 메시지의 Content-Transfer-Encoding 헤더를 확인하세요.
* 메시지의 Content-Transfer-Encoding 헤더를 확인하여 이미 base64로 인코딩된 메시지인지 확인하세요.
* 이미 base64로 인코딩된 메시지의 경우, 다시 인코딩하지 마세요.
#hostingforum.kr
python
import email
# ...
for num in messages[0].split():
status, data = mail.fetch(num, '(RFC822)')
raw_message = data[0][1]
message = email.message_from_bytes(raw_message)
if message.get_content_transfer_encoding() == 'base64':
# 이미 base64로 인코딩된 메시지이므로 다시 인코딩하지 않습니다.
print(message)
else:
# base64로 인코딩하지 않은 메시지이므로 인코딩합니다.
encoded_message = base64.b64encode(raw_message)
print(encoded_message)
2. 메시지의 본문을 직접 인코딩하세요.
* 메시지의 본문을 직접 인코딩하여 base64로 인코딩된 메시지를 식별하세요.
* 이미 base64로 인코딩된 메시지의 경우, 다시 인코딩하지 마세요.
#hostingforum.kr
python
import base64
import email
# ...
for num in messages[0].split():
status, data = mail.fetch(num, '(RFC822)')
raw_message = data[0][1]
message = email.message_from_bytes(raw_message)
if message.get_payload():
# 메시지의 본문을 직접 인코딩합니다.
encoded_message = base64.b64encode(message.get_payload())
print(encoded_message)
else:
# 메시지의 본문이 없으므로 인코딩하지 않습니다.
print(message)
이러한 방법 중 하나를 사용하여, 이미 base64로 인코딩된 메시지를 다시 인코딩하지 않도록 하세요.
2025-04-03 08:13