java邮件附件默认路径_JavaMail - 文件夹管理( Folder Management)

JavaMail - 文件夹管理( Folder Management)

到目前为止,我们在前面的章节中主要使用了INBOX文件夹。 这是大多数邮件所在的默认文件夹。 有些系统可能将其称为INBOX,而另一些系统可能会将其称为其他名称。 但是,您始终可以使用名称INBOX从JavaMail API访问它。

JavaMail API将文件夹表示为抽象Folder类的实例:public abstract class Folder extends Object

此类声明了从服务器请求命名文件夹,从文件夹中删除邮件,在文件夹中搜索特定邮件,在文件夹中列出邮件等的方法。

打开文件夹

我们无法直接创建文件夹,因为Folder类中唯一的构造函数protected 。 我们可以从以下位置获取Folder一个会议

一家商店

或其他文件夹

以上所有类都有类似的getFolder()方法,具有类似的签名:public abstract Folder getFolder(String name) throws MessagingException

一些有助于获取Folder对象的方法是:方法描述

boolean exists()检查文件夹是否确实存在。 在获取Folder对象之前使用此方法。

abstract void open (int mode)当你得到一个Folder ,它关闭。 使用此方法打开它。 mode可以是Folder.READ_ONLY或Folder.READ_WRITE。

abstract boolean isOpen ()如果文件夹处于打开状态,则此方法返回true如果文件夹已关闭,则返回false

abstract void close (boolean expunge)关闭文件夹。 如果expunge参数为true ,则从服务器上的实际文件中删除该文件夹中的所有已删除邮件。 否则,它们只是标记为deleted ,但仍然可以取消删除邮件。

基本文件夹信息

以下是Folder类中的一些返回文件夹基本信息的方法:方法描述

abstract String getName ()返回文件夹的名称,例如“IoWiki Mail”

abstract String getFullName ()从根目录返回完整的层次结构名称,例如“books/Manisha/IoWiki Mail”。

URLName getURLName ()返回表示此文件夹的URLName。

abstract文件夹getParent ()返回包含此文件夹的文件夹的名称,即父文件夹。 例如,之前的“IoWiki Mail”示例中的“Manisha”。

abstract int getType()返回一个int,指示文件夹是否可以包含消息和/或其他文件夹。

int getMode()当模式未知时,它返回两个命名常量Folder.READ_ONLY或Folder.READ_WRITE中的一个或-1。

存储getStore ()返回从中检索此文件夹的Store对象。

abstract char getSeparator ()返回将此文件夹的路径名与直接子文件夹的名称分隔开的分隔符。

管理文件夹

以下是一些有助于管理文件夹的方法:方法描述

abstract boolean create (int type)这将在此文件夹的Store中创建一个新文件夹。 其中type是:Folder.HOLDS_MESSAGES或Folder.HOLDS_FOLDERS。 如果成功创建文件夹,则返回true ,否则返回false 。

abstract boolean delete (boolean recurse)仅当文件夹关闭时,才会删除该文件夹。 否则,它会抛出IllegalStateException 。 如果recurse为true ,则删除子文件夹。

abstract boolean renameTo (Folder f)这会更改此文件夹的名称。 必须关闭文件夹才能重命名。 否则,抛出IllegalStateException。

管理文件夹中的邮件

以下是一些有助于管理文件夹中的消息的方法:方法描述

abstract void appendMessages (Message [] messages)顾名思义,数组中的消息放在此文件夹的末尾。

void copyMessages (Message []消息,文件夹目标)这会将此文件夹中的消息复制到作为参数提供的指定文件夹中。

抽象消息[] expunge ()要从文件夹中删除邮件,请将其Flags.Flag.DELETED标志设置为true。 要从文件夹中物理删除已删除的邮件,您必须调用此方法。

列出文件夹的内容

列出文件夹包含的文件夹有四种方法:方法描述

文件夹[] list ()这将返回一个列出此文件夹包含的文件夹的数组。

Folder [] listSubscribed ()这将返回一个列出该文件夹包含的所有已订阅文件夹的数组。

abstract Folder [] list(String pattern)这与list()方法类似,只是它允许您指定模式。 模式是一个字符串,给出匹配的文件夹的名称。

Folder [] listSubscribed (String pattern)这类似于listSubscribed()方法,但它允许您指定模式。 模式是一个字符串,给出匹配的文件夹的名称。

检查邮件方法描述

abstract int getMessageCount ()可以在打开或关闭的文件夹上调用此方法。 但是,在关闭文件夹的情况下,此方法可能(或可能不)返回-1以指示不容易获得确切的消息数。

abstract boolean hasNewMessages ()如果自上次打开以来已将新消息添加到文件夹,则返回true 。

int getNewMessageCount ()它通过检查设置了RECENT标志的文件夹中的消息来返回新的消息计数。

int getUnreadMessageCount ()这可以在打开或关闭的文件夹上调用。 但是,在关闭文件夹的情况下,它可能返回-1表示真正的答案太昂贵而无法获得。

从文件夹中获取邮件

Folder类提供了四种从打开的文件夹中检索消息的方法:方法描述

abstract Message getMessage (int messageNumber)这将返回文件夹中的第n条消息。 文件夹中的第一条消息是数字1。

消息[] getMessages ()这将返回表示此文件夹中所有消息的Message对象数组。

Message [] getMessages (int start,int end)这将从文件夹返回一个Message对象数组,从start开始,以end结束,包括end。

Message [] getMessages (int [] messageNumbers)这将返回一个数组,该数组仅包含messageNumbers数组中由number特定标识的那些消息。

void fetch (Message []消息,FetchProfile fp)为给定的消息预取FetchProfile中指定的项目。 FetchProfile参数指定要预取的消息中的哪些标头。

正在搜索文件夹

如果服务器支持搜索(许多IMAP服务器都支持搜索,而大多数POP服务器不支持),则可以轻松地在文件夹中搜索符合特定条件的邮件。 标准在SearchTerm对象中编码。 以下是两种搜索方法:方法描述

消息[] search (SearchTerm术语)在此文件夹中搜索与指定搜索条件匹配的邮件。 返回包含匹配消息的数组。 如果未找到匹配项,则返回空数组。

消息[] search (SearchTerm术语,消息[]消息)在给定的消息数组中搜索与指定搜索条件匹配的消息。 返回包含匹配消息的数组。 如果未找到匹配项,则返回空数组。 指定的Message对象必须属于此文件夹。

Flags

当您需要更改文件夹中整个消息集的标志时,标记修改很有用。 以下是Folder类中提供的方法:方法描述

void setFlags (Message []消息,Flags标志,布尔值)在数组中指定的消息上设置指定的标志。

void setFlags (int start,int end,Flags flag,boolean value)设置从开始到结束编号​​的消息上的指定标志,包括开始和结束。

void setFlags (int [] messageNumbers,Flags flag,boolean value)在消息编号在数组中的消息上设置指定的标志。

抽象标志getPermanentFlags ()返回此文件夹支持所有消息的标志。

JavaMail - Gmail SMTP服务器( Gmail SMTP server)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaMail 是用于发送和接收电子邮件的 Java API。可以使用 JavaMail API 从多个发件人发送电子邮件,下面是一个示例: ```java import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class MultipleSenders { public static void main(String[] args) { // 发件人列表 String[] fromList = {"sender[email protected]", "sender[email protected]"}; // 收件人 String to = "recipient@example.com"; // SMTP 服务器地址 String host = "smtp.example.com"; // 邮件标题 String subject = "JavaMail Test"; // 邮件内容 String text = "This is a test email from JavaMail."; // 发件人用户名和密码 String username = "username"; String password = "password"; // 设置邮件会话属性 Properties props = new Properties(); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", host); props.put("mail.smtp.port", "587"); // 获取邮件会话 Session session = Session.getInstance(props, new javax.mail.Authenticator() { protected javax.mail.PasswordAuthentication getPasswordAuthentication() { return new javax.mail.PasswordAuthentication(username, password); } }); try { // 创建邮件消息 Message message = new MimeMessage(session); message.setFrom(new InternetAddress(fromList[0])); for (int i = 1; i < fromList.length; i++) { message.addFrom(InternetAddress.parse(fromList[i])); } message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); message.setSubject(subject); message.setText(text); // 发送邮件 Transport.send(message); System.out.println("Email sent successfully."); } catch (MessagingException e) { e.printStackTrace(); } } } ``` 在上面的示例中,我们使用 `addFrom()` 方法将多个发件人添加到邮件消息中。注意,SMTP 服务器可能会对此进行限制,因此请确保您遵守 SMTP 服务器的规定。另外,也要确保您有权使用添加的所有发件人地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值