JavaMail API-할당량 관리
JavaMail의 할당량은 전자 메일 저장소에있는 제한되거나 고정 된 메시지 수 또는 양입니다. 각 메일 서비스 요청은 JavaMail API 호출 할당량에 포함됩니다. 이메일 서비스는 다음 할당량 기준을 적용 할 수 있습니다.
첨부 파일을 포함하여 보내는 메일 메시지의 최대 크기입니다.
첨부 파일을 포함한 수신 메일 메시지의 최대 크기.
관리자가 수신자 인 경우 최대 메시지 크기
할당량 관리를 위해 JavaMail에는 다음 클래스가 있습니다.
수업 | 기술 |
---|---|
공개 클래스 할당량 | 이 클래스는 주어진 할당량 루트에 대한 할당량 집합을 나타냅니다. 각 할당량 루트에는 Quota.Resource 클래스로 표시되는 리소스 집합이 있습니다. 각 리소스에는 이름 (예 : "STORAGE"), 현재 사용량 및 사용량 제한이 있습니다. 여기에는 setResourceLimit (String name, long limit) 메서드가 하나만 있습니다. |
공용 정적 클래스 Quota.Resource | 할당량 루트의 개별 리소스를 나타냅니다. |
공용 인터페이스 QuotaAwareStore | 할당량을 지원하는 저장소에서 구현 한 인터페이스입니다. getQuota 및 setQuota 방법은 IMAP 할당량 확장에 의해 정의 된 할당량 모델을 지원합니다. GmailSSLStore, GmailStore, IMAPSSLStore, IMAPStore 는이 인터페이스의 알려진 구현 클래스입니다. |
다음 섹션에서 메일 저장소 이름, 제한 및 사용을 확인하는 예를 살펴 보겠습니다.
자바 클래스 생성
자바 클래스 파일 만들기 QuotaExample, 그 내용은 다음과 같습니다.
package com.tutorialspoint;
import java.util.Properties;
import javax.mail.Quota;
import javax.mail.Session;
import javax.mail.Store;
import com.sun.mail.imap.IMAPStore;
public class QuotaExample
{
public static void main(String[] args)
{
try
{
Properties properties = new Properties();
properties.put("mail.store.protocol", "imaps");
properties.put("mail.imaps.port", "993");
properties.put("mail.imaps.starttls.enable", "true");
Session emailSession = Session.getDefaultInstance(properties);
// emailSession.setDebug(true);
// create the IMAP3 store object and connect with the pop server
Store store = emailSession.getStore("imaps");
//change the user and password accordingly
store.connect("imap.gmail.com", "[email protected]", "*****");
IMAPStore imapStore = (IMAPStore) store;
System.out.println("imapStore ---" + imapStore);
//get quota
Quota[] quotas = imapStore.getQuota("INBOX");
//Iterate through the Quotas
for (Quota quota : quotas) {
System.out.println(String.format("quotaRoot:'%s'",
quota.quotaRoot));
//Iterate through the Quota Resource
for (Quota.Resource resource : quota.resources) {
System.out.println(String.format(
"name:'%s', limit:'%s', usage:'%s'", resource.name,
resource.limit, resource.usage));
}
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}
IMAPStore는 QuotaAwareStore를 구현하므로 IMAP (imap.gmail.com) 서버를 통해 Gmail 서비스에 연결합니다. Store 객체를 얻으면 Quota 배열을 가져 와서 반복하고 관련 정보를 인쇄합니다.
컴파일 및 실행
이제 클래스가 준비되었으므로 위 클래스를 컴파일 해 보겠습니다. QuotaExample.java 클래스를 디렉토리에 저장했습니다./home/manisha/JavaMailAPIExercise. 클래스 경로에 jars javax.mail.jar 및 activation.jar 이 필요합니다 . 아래 명령을 실행하여 명령 프롬프트에서 클래스를 컴파일하십시오 (두 jar 모두 / home / manisha / 디렉토리에 있음).
javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: QuotaExample.java
이제 클래스가 컴파일되었으므로 아래 명령을 실행하여 실행하십시오.
java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: QuotaExample
출력 확인
명령 콘솔에 유사한 메시지가 표시되어야합니다.
imapStore ---imaps://abc%[email protected]
quotaRoot:''
name:'STORAGE', limit:'15728640', usage:'513'