
imap_fetchstructure 함수는 메시지 ID가 실제로 존재하지 않을 때 에러를 발생시키는 문제가 있습니다.
이러한 문제를 해결하기 위해, imap_fetchstructure 함수의 첫 번째 인자로 받은 메시지 ID가 실제로 존재하는지 확인하는 코드를 작성할 수 있습니다.
예를 들어, imap_check 함수를 사용하여 메시지 ID가 실제로 존재하는지 확인할 수 있습니다.
#hostingforum.kr
python
import imaplib
# imap 서버 연결
mail = imaplib.IMAP4_SSL('imap 서버 주소')
mail.login('이메일 주소', '비밀번호')
# 메시지 ID가 실제로 존재하는지 확인
status, messages = mail.search(None, 'ALL')
if messages[0]:
# 메시지 ID가 실제로 존재한다면 imap_fetchstructure 함수를 사용
status, structure = mail.fetch(messages[0], '(RFC822)')
else:
# 메시지 ID가 실제로 존재하지 않는다면 기본값이나 NULL을 반환
structure = None
# imap 서버 연결 종료
mail.close()
mail.logout()
또는 imap_fetchstructure 함수의 첫 번째 인자로 받은 메시지 ID가 실제로 존재하지 않을 때 기본값이나 NULL을 반환하는 방법으로, try-except 문을 사용할 수 있습니다.
#hostingforum.kr
python
import imaplib
# imap 서버 연결
mail = imaplib.IMAP4_SSL('imap 서버 주소')
mail.login('이메일 주소', '비밀번호')
try:
# 메시지 ID가 실제로 존재하는지 확인
status, messages = mail.search(None, 'ALL')
if messages[0]:
# 메시지 ID가 실제로 존재한다면 imap_fetchstructure 함수를 사용
status, structure = mail.fetch(messages[0], '(RFC822)')
else:
# 메시지 ID가 실제로 존재하지 않는다면 기본값이나 NULL을 반환
structure = None
except imaplib.IMAP4.error:
# 메시지 ID가 실제로 존재하지 않는다면 기본값이나 NULL을 반환
structure = None
# imap 서버 연결 종료
mail.close()
mail.logout()
이러한 방법을 사용하여, imap_fetchstructure 함수의 첫 번째 인자로 받은 메시지 ID가 실제로 존재하지 않을 때 에러를 발생시키지 않고 기본값이나 NULL을 반환할 수 있습니다.
2025-07-23 11:00