- JavaMail API 教程
- JavaMail - 首页
- JavaMail API - 概述
- JavaMail - 环境设置
- JavaMail - 核心类
- JavaMail - 发送邮件
- JavaMail - 检查邮件
- JavaMail - 获取邮件
- JavaMail - 身份验证
- JavaMail - 回复邮件
- JavaMail - 转发邮件
- JavaMail - 删除邮件
- JavaMail - Gmail SMTP 服务器
- JavaMail - 文件夹管理
- JavaMail - 配额管理
- JavaMail - 退信
- JavaMail API 协议
- JavaMail - SMTP 服务器
- JavaMail - IMAP 服务器
- JavaMail - POP3 服务器
- JavaMail API 有用资源
- JavaMail - 快速指南
- JavaMail - 有用资源
- JavaMail - 讨论
JavaMail API - 配额管理
JavaMail 中的配额是指邮件存储中消息的数量或数量限制。每次邮件服务请求都会计入 JavaMail API 调用配额。电子邮件服务可以应用以下配额标准
包括附件在内的传出邮件的最大大小。
包括附件在内的传入邮件的最大大小。
管理员为收件人时邮件的最大大小
对于配额管理,JavaMail 具有以下类
类 | 描述 |
---|---|
public class Quota | 此类表示给定配额根目录的一组配额。每个配额根目录都有一组资源,由 Quota.Resource 类表示。每个资源都有一个名称(例如,“STORAGE”)、当前使用量和使用限制。它只有一个方法 setResourceLimit(String name, long limit)。 |
public static class Quota.Resource | 表示配额根目录中的单个资源。 |
public interface QuotaAwareStore | 支持配额的存储实现的接口。getQuota 和 setQuota 方法支持由 IMAP QUOTA 扩展定义的配额模型。GmailSSLStore、GmailStore、IMAPSSLStore、IMAPStore 是此接口的已知实现类。 |
让我们在以下部分查看一个示例,该示例检查邮件存储名称、限制及其使用情况。
创建 Java 类
创建一个名为 QuotaExample 的 Java 类文件,其内容如下所示
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(); } } }
这里通过 IMAP(imap.gmail.com)服务器连接到 Gmail 服务,因为 IMAPStore 实现 QuotaAwareStore。获取 Store 对象后,获取 Quota 数组并遍历它并打印相关信息。
编译和运行
现在我们的类已准备就绪,让我们编译上面的类。我已将类 QuotaExample.java 保存到目录:/home/manisha/JavaMailAPIExercise。我们需要将 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'
广告