2

Apache Commons Mail ライブラリを使用して電子メールを送信しています (単純な SMTP 電子メールの例を使用)。

電子メールは、有名なプロバイダーの 1 つを使用して送信されます (例として yahoo を使用しました)。メールは正常に送信されました。しかし、yahoo アカウントにログインすると、送信済みフォルダーにメールが表示されません。

電子メールが送信済みフォルダーに確実に保存されるようにするために、フラグを有効にする必要があるか、コーディングする必要がありますか?

手伝ってください。ありがとうございました

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 });
}

ここでは、smtp-host ではなく imap-host を使用する必要があることに注意してください。これらのプロトコルの違いは明らかです。

敬具

デイビー

于 2016-11-23T13:29:48.060 に答える