>  기사  >  Java  >  Java에서 이메일 삭제

Java에서 이메일 삭제

WBOY
WBOY원래의
2024-08-30 15:56:40512검색

다음 문서에서는 Java에서 이메일 삭제에 대한 개요를 제공합니다. Java에서 이메일 삭제를 사용하면 이메일을 삭제하고 보내고, 전달하고, 받을 수 있습니다. 이메일 전송 단계 중 하나인 Message 클래스 java mail API의 setFlag 옵션을 사용하여 특정 메시지를 삭제할 수 있습니다. Java 메일 API는 java 작업을 수행하기 위해 이러한 jar인 mail.jar 및 activate.jar의 도움으로 보내거나 받을 데이터를 읽기 전의 이메일 전송 단계 중 하나입니다.

Java에서 이메일 삭제

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

주요 시사점

  • 신청에서는 Gmail 및 기타 메일서버를 사용하고 있습니다.
  • 우리는 받은편지함에서 읽지 않은 이메일을 표시하기 위해 IMAP 프로토콜을 활용하고 있습니다.
  • 읽지 않은 첫 번째 이메일이 삭제되었습니다.
  • 애플리케이션 실행이 완료되고 받은편지함을 열면 결과를 제대로 관찰할 수 있습니다.
  • POP 프로토콜은 메시지 삭제만 허용합니다.

이메일 삭제 개요

Java에서 이메일을 삭제하면 이메일을 삭제하고 보내고, 전달하고, 받을 수 있는 옵션이 있습니다. Message 클래스의 기능과 같은 setFlag 옵션을 활용하는 특정 메시지 삭제를 허용합니다. 세션 개체는 폴더 개체를 생성한 후 열고 setFlag 메서드를 사용하여 저장소 개체를 현재 호스트 컴퓨터에 연결한 다음 삭제할 메시지를 가져오는 데 사용됩니다. 메시지 삭제를 위해서는 메시지에 연결된 플래그 작업이 필요합니다. 다양한 상태에 대한 여러 플래그가 있으며 그 중 일부는 시스템 정의이고 다른 일부는 사용자 정의입니다. 내부 클래스 Flags는 항상 미리 정의된 플래그를 정의합니다.

Java에서 프로그래밍 방식으로 이메일을 삭제하는 방법은 무엇입니까?

이메일은 총 4단계로 삭제할 수 있습니다:

1. 세션 객체

세션 개체는 사용자 세션과 관련된 데이터를 유지하거나 설정을 수정합니다. 단일 애플리케이션의 모든 페이지는 단일 사용자에 대한 데이터를 보유하는 세션 개체에 포함된 변수에 액세스할 수 있습니다. 이름, 아이디, 선호사항 등은 세션 변수에 자주 저장되는 정보의 예입니다.

2. 현재 호스트에 연결하고 스토리지 개체를 구성합니다

디자인 타임 메타데이터를 데이터베이스 통합 인스턴스로 내보내려면 스토리지 URL을 구축하여 스토리지 버킷을 지정하고 생성해야 합니다(아직 없는 경우). 인스턴스를 마이그레이션하려면 나중에 구성 절차 중에 이 URL을 지정해야 합니다. 그런 다음 애플리케이션 마이그레이션 서비스를 활용하면 이러한 작업이 자동으로 완료됩니다.

3. 폴더 개체를 만들려면 실행하세요

스토리지에서 받은 폴더 개체가 백엔드 저장소에 실제로 존재해야 한다는 요구 사항은 없습니다. 존재하는 메소드를 사용하여 폴더의 존재 여부를 확인합니다. 폴더는 create 메소드를 사용하여 생성됩니다. 처음에는 폴더가 닫힌 상태입니다. 여러 방법에 대한 문서에는 이 조건에서 유효하다는 사실이 언급되어 있습니다. 폴더의 '열기' 기능을 호출하면 폴더가 열립니다. 이 상태에서는 열기 및 삭제를 제외한 모든 폴더 방법이 작동합니다.

4. setFlag 메소드를 사용하여 삭제할 메시지를 가져옵니다

Gmail이나 기타 메일 서버에 액세스하기 위해. IMAP을 프로토콜로 사용하여 받은 편지함에서 읽지 않은 이메일을 표시합니다. 그런 다음 읽지 않은 첫 번째 이메일을 삭제합니다. 프로그램 실행이 끝난 후 받은 편지함을 열면 결과를 정확하게 확인할 수 있습니다.

플래그는 주로 사전 정의된 플래그를 내부 클래스로 선언하도록 지원됩니다.

  • 플래그.플래그.답변
  • 플래그.플래그.삭제됨
  • 플래그.플래그.최근
  • 플래그.플래그.사용자

위 플래그는 시스템 정의 이메일과 사용자 정의 이메일 모두에 대해 서로 다른 상태에서 자주 사용되는 플래그입니다.

이메일 API 삭제

세션 개체를 가져오는 것은 저장소 개체를 생성할 수 있는 후 삭제 작업을 진행하는 첫 번째 단계입니다. 저장소 개체가 로컬 호스트 또는 내부 메일 서버 자격 증명에 연결되어 있는지 확인하기 위해 추가로 getStore() 메서드를 사용하여 Imap, Pop3, SMTP 등과 같은 프로토콜을 검색하여 저장소를 가져올 수 있습니다. 폴더 개체는 저장소에 액세스하는 다음 방법입니다. Inbox나 기타 개인 또는 공용 액세스 폴더와 같은 이메일.

Message[] 배열을 사용하면 특정 폴더에서 메시지를 검색할 수 있습니다. 이를 위해 getMessages() 메소드를 사용하는 것이 이를 검색하는 경로입니다. 필요한 메시지를 삭제하는 데 가장 중요한 역할이 Flags라는 것을 알고 있습니다. 여기서는 setFlag(FLAGS.Flag.DELETED, boolean)라는 메서드를 사용할 수 있습니다. 이러한 조건은 메시지의 유효성을 검사하고 필요한 폴더에서 플래그를 삭제된 것으로 설정합니다.

메일서버 삭제

Java에서는 MailServerManager라는 인터페이스를 사용하여 AbstractMailServerManager, OFBizMailServerManager 및 XMLMailServerManager와 같은 Java 기본 클래스를 구현할 수 있습니다. 서버를 생성, 업데이트 및 삭제할 수 있는 server_types를 나타내는 String[] 배열의 도움으로. 긴 인스턴스 ID 유형으로 메일 서버를 생성하기 위한 create(MailServer 인스턴스)입니다. 여기서는 void 유형의 delete(java.lang.Long mailServerId)와 같은 서버 인스턴스 ID를 삭제할 수 있습니다.

Java에서 이메일 삭제 예시

다음은 언급된 예입니다.

코드:

package TestNG;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
public class NewTest {
public static void deletemail(String hst, String stype, String emailuser,
String passwd)
{
try
{
Properties props = new Properties();
props.put("mail.store.protocol", "pop3");
props.put("mail.pop3s.host", hst);
props.put("mail.pop3s.port", "995");
props.put("mail.pop3.starttls.enable", "true");
Session sess = Session.getDefaultInstance(props);
Store st = sess.getStore("pop3s");
st.connect(hst, emailuser, passwd);
Folder fld = st.getFolder("INBOX");
fld.open(Folder.READ_WRITE);
BufferedReader rd = new BufferedReader(new InputStreamReader(
System.in));
Message[] msgs = fld.getMessages();
System.out.println("msgs.length---" + msgs.length);
for (int i = 0; i < msgs.length; i++) {
Message ms = msgs[i];
System.out.println("---------------------------------");
System.out.println("Email Number " + (i + 1));
System.out.println("Email Subject: " + ms.getSubject());
System.out.println("From: " + ms.getFrom()[0]);
String sub = ms.getSubject();
System.out.print("Do you want to delete this message [y/n] ? ");
String res = rd.readLine();
if ("Y".equals(res) || "y".equals(res)) {
ms.setFlag(Flags.Flag.DELETED, true);
System.out.println("Marked DELETE for message: " + sub);
} else if ("n".equals(res)) {
break;
}
}
fld.close(true);
st.close();
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (IOException io) {
io.printStackTrace();
}
}
public static void main(String[] args) {
String gmailhost = "pop.gmail.com";
String mailStoreType = "pop3";
String username = "[email protected]";
String password = "xodbizaoiqijifre";
deletemail(gmailhost, mailStoreType, username, password);
}
}

출력:

Java에서 이메일 삭제

설명:

  • 위의 예에서는 메일 및 io 패키지와 기본 클래스, 메서드 등을 가져왔습니다.
  • 그런 다음 Properties 클래스를 사용하여 메일 서버 및 기타 세부 정보를 구성할 수 있습니다.
  • 필수 클래스와 해당 메소드를 사용하여 생성, 삭제 등과 같은 메일 작업을 수행할 수 있습니다.
  • 메일 데이터를 반복하고 try-catch 블록을 사용하여 메일 예외를 가져오는 For 루프.
  • 메인 함수에서 메서드를 호출하여 작업을 실행할 수 있습니다.

결론

이메일 보내기, 전달, 받기 기능과 함께 이 옵션도 존재합니다. Message 클래스의 setFlag 메소드를 사용하여 특정 메시지를 삭제할 수 있습니다. 이해하려면 JavaMail API의 이메일 전송 단계에 익숙해야 합니다. POP 프로토콜에서는 Java 이메일의 메시지 삭제만 지원됩니다. 세션 개체를 가져오기 위해 스토리지 개체를 생성하기 전에 현재 활성화된 호스트에 연결하세요. 삭제할 메시지를 가져와서 폴더 객체를 생성한 다음 setFlag 함수를 사용하여 실행하세요.

FAQ

아래에 언급된 FAQ가 나와 있습니다.

Q1. Java에서 이메일 삭제란 무엇인가요?

답변: 이메일을 삭제하고 보내고, 전달하고, 받을 수 있는 옵션이 있습니다. 특정 메시지를 삭제하려면 Message 클래스의 setFlag 함수를 활용하세요. 이 예제를 읽기 전에 JavaMail API의 이메일 전송 단계에 대해 알아보십시오.

Q2. Java에서 이메일을 삭제하려면 어떤 프로토콜을 사용합니까?

정답: POP 프로토콜은 Java 메일에서 삭제된 메시지만 지원하는 데 사용됩니다.

Q3. Java에서 이메일을 삭제하는 방법은 무엇입니까?

답변: 먼저 세션 개체를 가져오려면 현재 호스트에 연결하고 스토리지 개체를 구성하세요. 폴더 개체를 만든 다음 실행합니다. setFlag 메소드를 사용하여 삭제할 메시지를 가져옵니다.

위 내용은 Java에서 이메일 삭제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Java로 이메일 전달다음 기사:Java로 이메일 전달