2

我正在使用 Apache Commons Mail 库发送电子邮件(使用他们简单的 SMTP 电子邮件示例)。

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

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

请协助。谢谢

4

1 回答 1

1

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

    ...
    // 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-host,而不是 smtp-host。这些协议的区别应该很清楚。

亲切的问候

戴维

于 2016-11-23T13:29:48.060 回答