
imap_setflag_full 함수는 IMAP 서버에 메일을 읽고 flag를 설정하는 함수입니다.
1. 메일을 읽기 전에 flag를 설정하려면, imap_search 함수를 사용하여 메일의 UID를 가져와야 합니다.
2. imap_setflag_full 함수의 인자 중에서 "flags"를 사용하여 flag를 설정할 수 있습니다.
3. flag 값을 지정하는 방법은 다음과 같습니다.
- SEEN: 메일을 읽은 것으로 표시합니다.
- ANSWERED: 메일에 답변을 달았습니다.
- FLAGGED: 메일을 중요하게 표시합니다.
- DELETED: 메일을 삭제합니다.
- DRAFT: 메일을草案으로 표시합니다.
4. imap_setflag_full 함수의 결과값은 다음과 같습니다.
- 성공 시: None을 반환합니다.
- 실패 시: 예외를 발생시킵니다.
예를 들어, 메일을 읽기 전에 flag를 설정하는 경우, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
python
import imaplib
# IMAP 서버 연결
mail = imaplib.IMAP4_SSL('imap 서버 주소')
mail.login('이메일 주소', '이메일 비밀번호')
# 메일을 검색하여 UID를 가져옵니다.
status, search_data = mail.search(None, 'ALL')
uids = search_data[0].split()
# 메일을 읽기 전에 flag를 설정합니다.
for uid in uids:
mail.store(uid, '+FLAGS', '(\Seen)')
# 메일을 읽습니다.
mail.select('inbox')
status, messages = mail.search(None, 'ALL')
for num in messages[0].split():
status, data = mail.fetch(num, '(RFC822)')
msg = email.message_from_bytes(data[0][1])
# 메일을 처리합니다.
print(msg['Subject'])
# IMAP 서버 연결을 종료합니다.
mail.close()
mail.logout()
2025-04-22 14:06