java email 服务_JavaMail搜索邮件服务器中邮件

package com.what21.network.mail;

import java.util.Properties;

import javax.mail.Folder;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.NoSuchProviderException;

import javax.mail.Session;

import javax.mail.Store;

import javax.mail.search.SearchTerm;

public class EmailSearcher {

/**

* Searches for e-mail messages containing the specified keyword in

* Subject field.

* @param host

* @param port

* @param userName

* @param password

* @param keyword

*/

public void searchEmail(String host, String port, String userName,

String password, final String keyword) {

Properties properties = new Properties();

// Email服务器配置

properties.put("mail.imap.host", host);

properties.put("mail.imap.port", port);

// SSL设置

properties.setProperty("mail.imap.socketFactory.class",

"javax.net.ssl.SSLSocketFactory");

properties.setProperty("mail.imap.socketFactory.fallback", "false");

properties.setProperty("mail.imap.socketFactory.port",

String.valueOf(port));

Session session = Session.getDefaultInstance(properties);

try {

// 连接到消息Store

Store store = session.getStore("imap");

store.connect(userName, password);

// 打开 inbox folder

Folder folderInbox = store.getFolder("INBOX");

folderInbox.open(Folder.READ_ONLY);

// 创建一个搜索

SearchTerm searchCondition = new SearchTerm() {

@Override

public boolean match(Message message) {

try {

if (message.getSubject().contains(keyword)) {

return true;

}

} catch (MessagingException ex) {

ex.printStackTrace();

}

return false;

}

};

// 通过folder执行搜索

Message[] foundMessages = folderInbox.search(searchCondition);

for (int i = 0; i < foundMessages.length; i++) {

Message message = foundMessages[i];

String subject = message.getSubject();

System.out.println("Found message #" + i + ": " + subject);

}

// 关闭连接

folderInbox.close(false);

store.close();

} catch (NoSuchProviderException ex) {

System.out.println("No provider.");

ex.printStackTrace();

} catch (MessagingException ex) {

System.out.println("不能连接到消息 store.");

ex.printStackTrace();

}

}

/**

* Test this program with a Gmail's account

*/

public static void main(String[] args) {

String host = "imap.gmail.com";

String port = "993";

String userName = "your_email";

String password = "your_password";

EmailSearcher searcher = new EmailSearcher();

String keyword = "JavaMail";

searcher.searchEmail(host, port, userName, password, keyword);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaMailJava 的一个邮件处理库,可以用它来发送和接收邮件。以下是使用 JavaMail 获取邮件源码的示例代码: ```java import java.util.Properties; import javax.mail.Folder; import javax.mail.Message; import javax.mail.Session; import javax.mail.Store; import javax.mail.internet.MimeMessage; public class GetEmailSourceCode { public static void main(String[] args) throws Exception { // 邮箱登录信息 String host = "imap.xxx.com"; String username = "your_email@xxx.com"; String password = "your_password"; // 连接邮件服务器 Properties props = new Properties(); props.setProperty("mail.store.protocol", "imap"); props.setProperty("mail.imap.host", host); Session session = Session.getInstance(props); Store store = session.getStore("imap"); store.connect(host, username, password); // 获取收件箱 Folder inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); // 获取最新的一封邮件 Message message = inbox.getMessage(inbox.getMessageCount()); // 获取邮件源码 MimeMessage mimeMessage = (MimeMessage) message; String sourceCode = mimeMessage.getContent().toString(); System.out.println(sourceCode); // 关闭连接 inbox.close(false); store.close(); } } ``` 在代码,我们首先定义了邮件服务器的登录信息,包括主机名、用户名和密码。然后,我们使用 JavaMail 的 `Properties` 类来设置邮件协议和主机名等参数,并使用 `Session.getInstance()` 方法创建一个邮件会话对象。接着,我们使用 `store.connect()` 方法连接到邮件服务器。 然后,我们通过 `store.getFolder()` 方法获取收件箱,并使用 `inbox.open()` 方法打开它。接下来,我们调用 `inbox.getMessage()` 方法获取最新的一封邮件,并将其转换为 `MimeMessage` 对象。最后,我们可以通过调用 `mimeMessage.getContent()` 方法获取邮件源码。 最后,我们关闭连接,包括收件箱和存储对象。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值