java mail发送邮件成功后保存在已发送邮件夹为什么抛出异常:A4 No Error in IMAP command received by server
发送邮件成功后保存在已发送邮件夹报错,,,
/** * 以HTML格式发送邮件 * @param mailInfo * @return */ public boolean sendHtmlMail(SenderMailInfoVO mailInfo){ // 判断是否需要身份认证 SmtpAuth authenticator = null; Properties pro = mailInfo.getProperties(); // 如果需要身份认证,则创建一个密码验证器 if (mailInfo.isValidate()) { authenticator = new SmtpAuth(mailInfo.getUserName(),mailInfo.getPassword()); } // 根据邮件会话属性和密码验证器构造一个发送邮件的session Session sendMailSession = Session.getInstance(pro, authenticator); try { // 根据session创建一个邮件消息 Message mailMessage = new MimeMessage(sendMailSession); // 创建邮件发送者地址 Address from = new InternetAddress(mailInfo.getFromAddress()); // 设置邮件消息的发送者 mailMessage.setFrom(from); // 创建邮件的接收者地址,并设置到邮件消息中 Address to = new InternetAddress(mailInfo.getToAddress()); // Message.RecipientType.TO属性表示接收者的类型为TO mailMessage.setRecipient(Message.RecipientType.TO, to); // 设置邮件消息的主题 mailMessage.setSubject(mailInfo.getSubject()); // 设置邮件消息发送的时间 mailMessage.setSentDate(new Date()); // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象 Multipart mainPart = new MimeMultipart(); // 创建一个包含HTML内容的MimeBodyPart BodyPart html = new MimeBodyPart(); // 设置HTML内容 html.setContent(mailInfo.getContent(), "text/html; charset=utf-8"); mainPart.addBodyPart(html); // 将MiniMultipart对象设置为邮件内容 mailMessage.setContent(mainPart); // 发送邮件 Transport.send(mailMessage); //保存邮件到已发送邮件夹 IMAPStore store=MailSession.createIMAPStore(authenticator); folder = (IMAPFolder) store.getFolder("Sent"); if(!folder.exists()){ folder.create(Folder.HOLDS_MESSAGES); folder.open(Folder.READ_WRITE); } folder.open(Folder.READ_WRITE); //打开收件箱 Message[] msgs={mailMessage}; folder.appendMessages(msgs); mailMessage.setFlag(FLAGS.Flag.RECENT, true); System.out.println("邮件保存到已发送收件夹"); System.out.println("=======:"+msgs.toString()); return true; } catch (MessagingException ex) { ex.printStackTrace(); } return false; }
forder.appendMessage();
//刚看了看当时自己写的代码,希望对你有帮助
public void saveSendEmail(HttpServletRequest request, Message mailMessage)
{
Message[] message = new MimeMessage[1];
message[0] = mailMessage;
Store store = storeAutoConnect(request);
Folder folder = null;
try {
mailMessage.setFlag(Flags.Flag.SEEN, true);
folder = store.getFolder(ServerConfig.FOLDER_TYPE_SENT);
folder.open(2);
folder.appendMessages(message);
} catch (MessagingException e) {
e.printStackTrace();
} finally {
closeFolderAndStore(folder, store);
}
}
//看到的有点晚,不知道你是否已经解决,我在之前都有创建默认的Folder的...
public void createDefaultFolder(HttpServletRequest request) {
Store store = MailUtils.storeAutoConnect(request);
try {
Folder INBOXFolder = store.getFolder(ServerConfig.FOLDER_TYPE_INBOX);
if (!INBOXFolder.exists()) {
INBOXFolder.create(Folder.HOLDS_MESSAGES);
INBOXFolder.setSubscribed(true);
} else {
if (!INBOXFolder.isSubscribed()) {
INBOXFolder.setSubscribed(true);
}
}
Folder DRAFTSFolder = store.getFolder(ServerConfig.FOLDER_TYPE_DRAFTS);
if (!DRAFTSFolder.exists()) {
DRAFTSFolder.create(Folder.HOLDS_MESSAGES);
DRAFTSFolder.setSubscribed(true);
} else {
if (!DRAFTSFolder.isSubscribed()) {
DRAFTSFolder.setSubscribed(true);
}
}
Folder FOLDER_TYPE_SENT = store.getFolder(ServerConfig.FOLDER_TYPE_SENT);
if (!FOLDER_TYPE_SENT.exists()) {
FOLDER_TYPE_SENT.create(Folder.HOLDS_MESSAGES);
INBOXFolder.setSubscribed(true);
} else {
if (!FOLDER_TYPE_SENT.isSubscribed()) {
FOLDER_TYPE_SENT.setSubscribed(true);
}
}
Folder FOLDER_TYPE_TRASH = store.getFolder(ServerConfig.FOLDER_TYPE_TRASH);
if (!FOLDER_TYPE_TRASH.exists()) {
FOLDER_TYPE_TRASH.create(Folder.HOLDS_MESSAGES);
FOLDER_TYPE_TRASH.setSubscribed(true);
} else {
if (!FOLDER_TYPE_TRASH.isSubscribed()) {
FOLDER_TYPE_TRASH.setSubscribed(true);
}
}
} catch (MessagingException e) {
e.printStackTrace();
}
}
- 等 最代码怎么获取牛币啊?
- 完 谁来告诉我最代码上线的时间,答对者给5牛币,先来先得
- 等 牛友们,大家好,你们做程序员多久了?现在还好吗?
- 完 在微信打开的页面里进行app下载
- 等 最代码2014年欢乐聚声会
- 完 mysql如何查询表数据并且对3个字段降序的SQL?
- 完 最代码牛币机制改革
- 完 成功的在bae上使用了自定义运行环境 jetty+nginx的组合,大家对jetty+nginx优化有哪些心得?
- 完 进来分享一下各位牛牛是如何加入最代码大家庭的?
- 等 为什么java BufferedImage类处理大图直接抛出内存溢出的异常?
- 等 最代码是否开发手机app客户端?
- 完 java程序员学习哪些java的技术?java有哪些框架?都能做哪方面的开发?
- 等 php格式网页文件怎么运行?
- 等 Java volatile值获取的问题
- 等 前端vue,拦截了登录后台后,返回的token,requests拦截token,但是发送请求的时候,就出现跨越异常
- 等 大专本科计算机科班怎么找到Java工作?
- 等 eclipse怎么把三个java swing游戏项目合成一个项目?
- 完 伙伴们,大家都有什么好的解压方式么,分享一下~
- 完 三四线城市,6、7k,运维工作,索然无味,想去辞职上培训,各位牛牛有什么建议嘛
- 等 jsp页面输入中文变成问号
- 等 JPA在线上运行一段时间后报错Caused by: java.lang.IncompatibleClassChangeError: null
- 等 PHP 这个规则用preg_match_all怎么写
- 等 大佬们,有没有知道Alfresco如何配置LDAP登录呢?
- 等 php的install目录是框架带的吗?