使用 Apache 邮件发送电子邮件未保存在已发送文件夹中
Sending email using Apache mail is not saved in the sent folder
我正在使用 Apache Commons Mail 库发送电子邮件(使用他们的简单 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-host,不能是smtp-host。这些协议的区别应该很清楚。
谨致问候
戴维
我正在使用 Apache Commons Mail 库发送电子邮件(使用他们的简单 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-host,不能是smtp-host。这些协议的区别应该很清楚。
谨致问候
戴维