java代理实现domino web邮件下载
来源:互联网 发布:和社交网络类似的电影 编辑:程序博客网 时间:2024/05/23 13:48
【背景】
近日在研究domino web邮件下载功能,下载的邮件可以导入foxmail、outlook邮件客户端,下载的邮件格式为eml。
【参考代码】(需要下载jmail.jar包)
private void makeEml(String unid) {Document memo=null;RichTextItem body=null;try {memo = maildb.getDocumentByUNID(unid);String mailtime=((String) memo.getCreated().getLocalTime());String d_email = memo.getItemValueString("From");Vector v_to = memo.getItemValue("SendTo");Vector v_cc = memo.getItemValue("CopyTo");Vector v_bcc = memo.getItemValue("BlindCopyTo");String m_subject = memo.getItemValueString("Subject");String m_text = memo.getItemValueString("Body");Properties props = new Properties();Session session = Session.getInstance(props, null);//System.out.println("-----00000000------");try {MimeMessage msg = new MimeMessage(session);msg.setSubject(m_subject);//msg.setFrom(new InternetAddress(javax.mail.internet.MimeUtility.encodeText(d_email,"UTF-8", "B").replaceAll(" ", "")));msg.setFrom(new InternetAddress(javax.mail.internet.MimeUtility.encodeText((String)d_email,"UTF-8", "B").replaceAll(" ", "")));//System.out.println("-----111111------");for (int i=0; i<v_to.size(); i++){System.out.println("-----111111---0000---="+javax.mail.internet.MimeUtility.encodeText((String) v_to.elementAt(i),"UTF-8", "B").replaceAll(" ", ""));InternetAddress[] toaddress = InternetAddress.parse(javax.mail.internet.MimeUtility.encodeText((String) v_to.elementAt(i),"UTF-8", "B").replaceAll(" ", "")); msg.addRecipients(Message.RecipientType.TO, toaddress);//msg.addRecipients(Message.RecipientType.TO, toaddress);//System.out.println("-----111111---1111--222-");}for (int i=0; i<v_cc.size(); i++){InternetAddress[] ccaddress = InternetAddress.parse(javax.mail.internet.MimeUtility.encodeText((String) v_cc.elementAt(i),"UTF-8", "B").replaceAll(" ", ""));msg.addRecipients(Message.RecipientType.CC, ccaddress);}//System.out.println("-----111111--333----");for (int i=0; i<v_bcc.size(); i++){InternetAddress[] bccaddress = InternetAddress.parse(javax.mail.internet.MimeUtility.encodeText((String) v_bcc.elementAt(i),"UTF-8", "B").replaceAll(" ", ""));msg.addRecipients(Message.RecipientType.BCC, bccaddress);}MimeBodyPart p1 = new MimeBodyPart();p1.setText(m_text);Multipart mp = new MimeMultipart();mp.addBodyPart(p1);String extractMimePath=extractPath+memo.getNoteID()+"/";File extractDir2 = new File(extractMimePath);extractDir2.mkdirs();MIMEEntity mime = memo.getMIMEEntity();if (mime != null) {MimeBodyPart p2 = new MimeBodyPart(mime.getInputStream());mp.addBodyPart(p2);} else { //System.out.println("Body="+m_text); //System.out.println("Body="+memo.getFirstItem("Body").getType()) body = (RichTextItem) memo.getFirstItem("Body");Vector v = body.getEmbeddedObjects();Enumeration e = v.elements();while (e.hasMoreElements()) {eo = (EmbeddedObject) e.nextElement();filename = eo.getName();eo.extractFile(extractMimePath + filename);FileDataSource fds = new FileDataSource(extractMimePath+ filename);MimeBodyPart p2 = new MimeBodyPart();p2.setDataHandler(new DataHandler(fds));p2.setHeader("Content-Transfer-Encoding", "Base64");p2.setFileName(MimeUtility.encodeText(filename));mp.addBodyPart(p2);}}msg.setContent(mp);File emlFile = new File(extractPath+StringFilter(m_subject+" "+mailtime)+".eml"); //File emlFile = new File(extractPath+memo.getNoteID()+".eml");emlFile.createNewFile();FileOutputStream outFile = new FileOutputStream(emlFile);msg.writeTo(outFile);outFile.close();deleteDir(extractDir2);} catch (MessagingException mex) {deleteDir(extractDir2);mex.printStackTrace();}} catch (Exception e) {e.printStackTrace();}finally{recycleRes(eo);recycleRes(body);recycleRes(memo);}}public static boolean deleteDir(File dir) {if (dir.isDirectory()) {String[] children = dir.list();for (int i = 0; i < children.length; i++) {boolean success = deleteDir(new File(dir, children[i]));if (!success) {return false;}}}return dir.delete();}public static String StringFilter(String str) { String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\]\\\\.<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); //m=m.replaceAll("\\\\",""); return m.replaceAll("").trim(); }jar包下载地址:jar包下载
2 0
- java代理实现domino web邮件下载
- Domino Java代理实现Ftp上传、下载
- Lotus Domino Java代理邮件最终
- domino代理发送邮件,邮件正文为表格的实现方法
- domino 代理发送邮件,并且邮件发件人是指定用户的实现方法
- 调试 domino java 代理
- Domino Java代理注意事项
- Domino Java代理注意事项
- java收发邮件--Domino服务器
- domino java 代理内存释放
- Domino代理调用远程Web Service(SOAP)
- [Domino]Java访问Domino邮件代码片断[3]
- [Domino]Java访问Domino邮件代码片断[1]
- [Domino]Java访问Domino邮件代码片断[1]
- domino中lotusscprit调用java代理
- Domino使用Java代理的注意事项
- Domino使用Java代理的注意事项
- Domino使用Java代理的注意事项
- 使用java代码提交图片到服务器
- DB2对数据库进行全库搜索
- hdu-4548-美素数。。。
- FullScreen JavaScript API 具体使用
- BZOJ1305 [CQOI2009]dance跳舞
- java代理实现domino web邮件下载
- 强行登陆远程桌面和切换帐号的方法
- 阶段总结 ———— linux shell 判断mysql数据库密码是否为空、是否正确
- 定时清除日志文件
- hdu 4864 Task
- svn命令截取库版本号
- 利用FFmpeg本地音频和网络视频进行录像
- NYOJ 2【栈模拟】
- java为什么只有实现了Serializable接口才可以序列化