Java 使用Apache mail发送电子邮件不会保存在sent文件夹中

Java 使用Apache mail发送电子邮件不会保存在sent文件夹中,java,jakarta-mail,apache-commons-email,Java,Jakarta Mail,Apache Commons Email,我正在使用ApacheCommons邮件库发送电子邮件(使用简单的SMTP电子邮件示例) 电子邮件是通过一家著名的提供商发送的(我以雅虎为例)。电子邮件已成功发送。但是,当我登录到我的雅虎帐户时,我在“已发送”文件夹中看不到电子邮件 是否需要启用标志或编写其他代码以确保电子邮件保存在“已发送”文件夹中 请帮忙。谢谢你我刚刚遇到了同样的问题,通过以下方式解决了它: ... // send the org.apache.commons.mail.HtmlEmail email

我正在使用ApacheCommons邮件库发送电子邮件(使用简单的SMTP电子邮件示例)

电子邮件是通过一家著名的提供商发送的(我以雅虎为例)。电子邮件已成功发送。但是,当我登录到我的雅虎帐户时,我在“已发送”文件夹中看不到电子邮件

是否需要启用标志或编写其他代码以确保电子邮件保存在“已发送”文件夹中


请帮忙。谢谢你

我刚刚遇到了同样的问题,通过以下方式解决了它:

    ...
    // send the org.apache.commons.mail.HtmlEmail
    email.send();
    copyIntoSent(email.getMailSession(), email.getMimeMessage());
}

private void copyIntoSent(final Session session, final Message msg) throws MessagingException
{
    final Store store = session.getStore("imaps");
    store.connect(IMAP_HOST, SMTP_AUTH_USER, SMTP_AUTH_PWD);

    final Folder folder = (Folder) store.getFolder("Sent Items");
    if (folder.exists() == false) {
        folder.create(Folder.HOLDS_MESSAGES);
    }
    folder.open(Folder.READ_WRITE);

    folder.appendMessages(new Message[] { msg });
}
请注意,此处必须使用imap主机,而不是smtp主机。这些协议的区别应该很清楚

致以亲切的问候


戴维

我刚刚遇到了同样的问题,通过以下方式解决了这个问题:

    ...
    // send the org.apache.commons.mail.HtmlEmail
    email.send();
    copyIntoSent(email.getMailSession(), email.getMimeMessage());
}

private void copyIntoSent(final Session session, final Message msg) throws MessagingException
{
    final Store store = session.getStore("imaps");
    store.connect(IMAP_HOST, SMTP_AUTH_USER, SMTP_AUTH_PWD);

    final Folder folder = (Folder) store.getFolder("Sent Items");
    if (folder.exists() == false) {
        folder.create(Folder.HOLDS_MESSAGES);
    }
    folder.open(Folder.READ_WRITE);

    folder.appendMessages(new Message[] { msg });
}
请注意,此处必须使用imap主机,而不是smtp主机。这些协议的区别应该很清楚

致以亲切的问候


davey

您混淆了电子邮件协议的几个不同功能。在“已发送”文件夹中保存电子邮件需要IMAP客户端。发送电子邮件只需要SMTP。我认为IMAP是用于检索电子邮件的。将电子邮件保存在“已发送”文件夹中是一种不同的过程吗?我想当发送电子邮件时,电子邮件提供商会自动保存电子邮件(似乎不是)。我已经回答了一个类似的问题。SMTP用于发送(和接收)电子邮件。使用IMAP客户端将电子邮件存储在文件夹(甚至是“已发送”文件夹)中。SMTP没有“文件夹”的概念,它是“火而忘”的。@BillShannon这是有道理的。谢谢你的推荐。我希望有一个使用Apache Common的例子,你会混淆电子邮件协议的几个不同功能。在“已发送”文件夹中保存电子邮件需要IMAP客户端。发送电子邮件只需要SMTP。我认为IMAP是用于检索电子邮件的。将电子邮件保存在“已发送”文件夹中是一种不同的过程吗?我想当发送电子邮件时,电子邮件提供商会自动保存电子邮件(似乎不是)。我已经回答了一个类似的问题。SMTP用于发送(和接收)电子邮件。使用IMAP客户端将电子邮件存储在文件夹(甚至是“已发送”文件夹)中。SMTP没有“文件夹”的概念,它是“火而忘”的。@BillShannon这是有道理的。谢谢你的推荐。我希望有使用apachecommon的例子