当前位置: 首页 > 知识库问答 >
问题:

在流上传递javax.mail.消息

薄伟彦
2023-03-14

我正在使用JavaMail应用编程接口来获取一些电子邮件。我想得到一个消息流,然后在另一边得到一个电子邮件流。此外,我不想失去任何属性,如附件、目的地、发送者、正文等...

如何才能做到这一点?

共有2个答案

汤修贤
2023-03-14

请检查下面的示例代码:

  URLName url = new URLName("pop3","xxxx",123,"","user","password");
  Session session = Session.getInstance(props, null);
  Store store = new POP3SSLStore(session,url);
  store.connect();

  Folder folder = store.getFolder("INBOX");
  folder.open(Folder.READ_WRITE);

  Message message[] = folder.getMessages(); 

  for (int i=0; i <message.length;i++) {
      Message message = messages[i];

      //Get Message Properties
      System.out.println("From : " + message.getFrom()[0]);
      System.out.println("Subject : " + message.getSubject());
      System.out.println("Sent Date : " + message.getSentDate());

      //Get Input stream for each message
      InputStream is = message.getInputStream();
      .....
      is.close();
  }
  folder.close(false);
  store.close();

要反向构造消息:

      MimeMessage newMessage = new MimeMessage(session);
      MimeMultipart mimeMultipart = new MimeMultipart();
      MimeBodyPart attachment = new MimeBodyPart(is);
      attachment.setHeader("Content-Type", "contentType");
      mimeMultipart.addBodyPart(attachment);
      newMessage.setContent(mimeMultipart);
      newMessage.setFrom(InternetAddress.parse("fromAddress")[0]);
      newMessage.setReplyTo(InternetAddress.parse("toAddress"));
      newMessage.setSubject("subject");
包谭三
2023-03-14

好啊我设法找到了这个问题的答案

我们可以使用

.writeTo(out);

要写入OutputStream,请向其发送一个InputStream,最后您可以使用此

Message receivedMail=新的mimessage(会话,输入流);

问题修复!

 类似资料:
  • 我正在尝试用spring cloud stream实现spring cloud契约。我有一个使用StreamBridge的制作人 方法sendMessage()是从rest控制器调用的。 我的合同是这样的: 当我运行测试时,会调用triggerCreateOrganization()方法,并在日志中看到日志消息“生产组织到主题”。 我在生成的测试的基类上有@AutoConfigureMessage

  • 由于内容脚本在网页而不是扩展程序的上下文中运行,因此它们通常需要某种与扩展程序其余部分进行通信的方式。例如,RSS 阅读器扩展程序可以使用内容脚本来检测页面上 RSS 摘要的存在,然后通知后台页面以显示该页面的操作图标。 扩展及其内容脚本之间的通信使用消息传递来实现。任何一方都可以监听从另一端发送的消息,并在同一通道上进行响应。消息可以包含任何有效的 JSON 对象(空,布尔值,数字,字符串,数组

  • ms tcp nodelay 描述: 在信差的 TCP 会话上禁用 nagle 算法。 类型: Boolean 是否必需: No 默认值: true ms initial backoff 描述: 出错时重连的初始等待时间。 类型: Double 是否必需: No 默认值: .2 ms max backoff 描述: 出错重连时等待的最大时间。 类型: Double 是否必需: No 默认值: 15

  • 消息传递 目录 一次简单的请求 h3Name 长时间保持连接 h3Name 扩展之间的消息传递 h3Name 安全策略 h3Name 范例 h3Name API reference Properties propertyName Methods methodName Events eventName Types id For information on how to use experiment

  • 我有一个运行网站的服务器。我需要此服务器能够管理(仅下游)通知到三个独立的设备组,Android,iOS和客户端Web应用程序。 我试图使用Firebase云消息传递。对于FCM,我计划使用超文本传输协议来发送json消息。 除此之外,我还很困惑该去哪里。我知道GCM教程应该与FCM教程完全相同,但我很难找到一个教程来确定我需要做什么,因为每个教程似乎都将服务器端和客户端应用程序混合在一起,这让我

  • 我正在读一条来自Solace的信息。我能够成功地阅读信息。假设我正在阅读一条消息,在侦听器线程上读取/处理消息时,应用程序崩溃。那我怎么能在那上面再读一遍那条信息呢。使用下面的代码,我无法再次阅读该消息。下面是我的配置