使用Java邮件API保存草稿邮件?

使用Java邮件API保存草稿邮件?,java,jakarta-mail,Java,Jakarta Mail,目前我正在做如下工作: @Override public void saveDraftMessage(MimeMessage draftMessage) throws MessagingException { Folder draftsMailBoxFolder = imapsStore.getFolder("inbox");//[Gmail]/Drafts draftsMailBoxFolder.open(Folder.READ_WRITE); draftMe

目前我正在做如下工作:

@Override
public void saveDraftMessage(MimeMessage draftMessage) throws MessagingException 
{
    Folder draftsMailBoxFolder = imapsStore.getFolder("inbox");//[Gmail]/Drafts
    draftsMailBoxFolder.open(Folder.READ_WRITE);    
    draftMessage.setFlag(Flag.DRAFT, true);
    MimeMessage draftMessages[] = {draftMessage};
    draftsMailBoxFolder.appendMessages(draftMessages);
}
它可以工作,但正如你们所看到的,邮件被附加到“收件箱”文件夹中,而服务器端并没有抱怨


是否有任何类型的验证或替代方法来确保邮件仅在适当的位置保存为草稿。

正如上面其他人所建议的,您需要将草稿邮件存储在不同的文件夹中。您可以选择该文件夹的名称。如果您只使用Gmail,并且希望与Gmail的功能保持一致,那么将其保存在Gmail使用的文件夹(“[Gmail]/Drafts”?)中是有意义的。请记住在发送邮件时将其从文件夹中删除。

您的问题不清楚。您要求它将邮件写入收件箱。。为什么它不写进收件箱?是的,我也有点困惑。您无法更改服务器使用Java邮件API验证内容的方式,它只是一个客户端。如果服务器允许您在收件箱中存储邮件,那么您唯一能做的就是不将其存储在收件箱中。我不知道为什么这是个问题。看看javax.mail文档。如果你具体谈论gmail:我对gmail API没有任何经验,但谷歌的文档很好。标签看起来基本上是一个文件夹,相当数量的IMAP客户端只是将草稿标记为一个单独的文件夹。我想说变量名中的“imapsStore”是一个危险信号,如果曾经有过的话……谢谢你的提示。。“发送邮件时,请记住从文件夹中删除邮件…”