개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.30 04:32

IMAP 삭제 함수 사용 중 문제 발생

목록
  • 알파코더 3일 전 2025.05.30 04:32
  • 5
    1
안녕하세요 선생님. 저는 IMAP 삭제 함수인 imap_delete를 사용하여 메일 삭제를 하려고 하는데, 이 함수의 사용법을 정확히 모르겠습니다. 제가 사용한 코드는 다음과 같습니다.

python

import imaplib



mail = imaplib.IMAP4_SSL('imap.gmail.com')

mail.login('myemail@gmail.com', 'mypassword')

mail.select('inbox')



status, messages = mail.search(None, 'ALL')

for num in messages[0].split():

    mail.store(num, '+FLAGS', 'Deleted')

    mail.expunge()



이 코드는 메일을 삭제하는 것처럼 보이지만, 실제로 삭제가 이루어지는지 확인할 방법이 없을까요? 또한, imap_delete 함수를 사용하여 메일을 삭제하는 방법은 어떤 것일까요?

제가 사용한 코드는 imaplib 라이브러리를 사용하여 IMAP 프로토콜을 사용하고 있습니다. imap_delete 함수를 사용하여 메일을 삭제하는 방법은 어떤 것일까요?

제가 잘못 이해하고 있는 부분은 무엇인지 알려주시고, imap_delete 함수를 사용하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  3일 전



    imaplib 라이브러리를 사용하여 IMAP 프로토콜을 사용할 때, 메일을 삭제하는 방법은 두 가지가 있습니다.

    첫 번째 방법은 imaplib 라이브러리의 store 메서드를 사용하는 것입니다. 이 메서드는 메일을 삭제하기 위해 '+'FLAGS 명령을 사용합니다. 코드는 다음과 같습니다.

    #hostingforum.kr
    python
    
    mail.store(num, '+FLAGS', '\Deleted')
    
    mail.expunge()
    
    


    이 코드는 메일을 삭제하는 것처럼 보이지만, 실제로 삭제가 이루어지는지 확인할 방법이 없습니다. 이 메서드는 메일을 삭제하기 위해 'Deleted' 플래그를 설정하고, expunge 메서드를 호출하여 삭제된 메일을 실제로 삭제합니다.

    두 번째 방법은 imap_delete 함수를 사용하는 것입니다. 하지만 imaplib 라이브러리는 imap_delete 함수를 제공하지 않습니다. imaplib 라이브러리는 IMAP 프로토콜을 직접 사용하기 때문에, imap_delete 함수를 사용할 수 없습니다.

    imap_delete 함수를 사용하고 싶다면, imaplib 라이브러리를 사용하는 대신, imaplib2 라이브러리를 사용할 수 있습니다. imaplib2 라이브러리는 imaplib 라이브러리에 imap_delete 함수를 추가한 라이브러리입니다.

    imaplib2 라이브러리를 사용하는 방법은 다음과 같습니다.

    #hostingforum.kr
    python
    
    import imaplib2
    
    
    
    mail = imaplib2.IMAP4_SSL('imap.gmail.com')
    
    mail.login('myemail@gmail.com', 'mypassword')
    
    mail.select('inbox')
    
    
    
    status, messages = mail.search(None, 'ALL')
    
    for num in messages[0].split():
    
        mail.store(num, '+FLAGS', '\Deleted')
    
        mail.expunge()
    
        mail.delete(num)
    
    


    이 코드는 imaplib2 라이브러리의 delete 메서드를 사용하여 메일을 삭제합니다.

    imaplib2 라이브러리를 사용하기 전에, imaplib2 라이브러리를 설치해야 합니다. pip install imaplib2를 사용하여 설치할 수 있습니다.

    #hostingforum.kr
    bash
    
    pip install imaplib2
    
    


    이러한 방법을 사용하여 메일을 삭제할 수 있습니다.

    2025-05-30 04:33

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,465건 / 10 페이지

검색

게시물 검색