gpt4 book ai didi

java - 如何读取邮件中的附件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:21:07 25 4
gpt4 key购买 nike

我正在使用 JavaMail 阅读电子邮件。如果我收到带有附件文件的普通邮件,它就是我可以阅读的所有文件,但如果我收到转发的邮件,我就无法获取附件。这是我的代码:

class Msg(src: IMAPMessage) {
lazy val multipart: MimeMultipart = src.getContent.asInstanceOf[MimeMultipart]
def parts = (0 until multipart.getCount)
.map(multipart.getBodyPart)

def files = {
parts
.filter(s => {
println(s + " " + s.getFileName + " " + s.getContent + " " + s.getLineCount)
true})
.filter(_.getFileName != null)
.map(part => part.getFileName -> part.getContent.toString)
}
}

object MailMain {
def main(args: Array[String]): Unit = {
new ImapMail("host_name", "user_name", "password", ssl)
.messages(true)
.foreach(m => println(m.files))
}

当我尝试通过 part.getContent.toString 获取内容时,我收到了 com.sun.mail.util.BASE64DecoderStream@67d48005。我的问题是什么?

最佳答案

如果您想查看其内容,显然该内容是一个 Stream。

// Assume a obj is an instance of com.sun.mail.util.BASE64DecoderStream.
if (obj.isInstanceOf[InputStream]) {
val is: InputStream = obj.asInstanceOf[InputStream]
var ch: Int = -1
while ((ch = is.read()) != -1) System.out.write(ch)
}

关于java - 如何读取邮件中的附件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56542753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com