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;
}
所有回答列表(2)
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目录是框架带的吗?
相关问答






最近浏览
