
이 오류는 `messages[0].split()`에서 발생합니다. `messages[0]`은 문자열이기 때문에 `split()` 메서드를 사용할 수 없습니다.
대신, `messages[0]`을 리스트로 변환한 후 `split()` 메서드를 사용하세요.
#hostingforum.kr
python
status, messages = mail.search(None, 'ALL')
messages = messages[0].split()
또한, `message.walk()` 메서드는 이메일 본문을 가져올 때 일부 이메일에서 오류가 발생할 수 있습니다. 이 경우, `try-except` 블록을 사용하세요.
#hostingforum.kr
python
try:
for part in message.walk():
if part.get_content_type() == 'text/plain':
body += part.get_payload()
except Exception as e:
print(f"오류 발생: {e}")
이메일 본문을 가져오기 위해 다음과 같이 코드를 수정하세요.
#hostingforum.kr
python
import imaplib
import email
# 이메일 서버 접속
mail = imaplib.IMAP4('imap.gmail.com')
mail.login('내 이메일 주소', '비밀번호')
mail.select('inbox')
# 메시지 가져오기
status, messages = mail.search(None, 'ALL')
messages = messages[0].split()
for num in messages:
status, data = mail.fetch(num, '(RFC822)')
raw_message = data[0][1]
message = email.message_from_bytes(raw_message)
# 이메일 본문 가져오기
body = ''
try:
if message.is_multipart():
for part in message.walk():
if part.get_content_type() == 'text/plain':
body += part.get_payload()
else:
body = message.get_payload()
except Exception as e:
print(f"오류 발생: {e}")
continue
print(body)
이 코드는 일부 이메일에서 오류가 발생할 수 있지만, 대부분의 이메일에서 올바르게 작동할 것입니다.
2025-07-23 21:30