www.pudn.com > Javamail.rar > MailSendHtml.java
package com.digipower.automail.mailsender; /** *Title:
*Description: TestStruts
*Copyright: Copyright (c) 2004
*Company: foxconn
* @author conti * @version 1.0 */ import java.util.ArrayList; import javax.mail.internet.*; import javax.mail.*; import javax.activation.*; import java.util.Iterator; import java.io.*; public class MailSendHtml extends SendMail { private ArrayList arrayList1 = new ArrayList(); private ArrayList arrayList2 = new ArrayList(); public MailSendHtml(String smtpHost, String username, String password) { super(smtpHost, username, password); multipart = new MimeMultipart("related"); } public void setMailContent(String mailContent) throws MessagingException { String htmlContent = getContent(""; //System.out.println(contentId); messageBodyPart.setHeader("Content-ID", contentId); //messageBodyPart.setFileName( MimeUtility.encodeText((String) arrayList1.get(i))); try { messageBodyPart.setFileName(MimeUtility.encodeText((String)arrayList1.get(i))); } catch(Exception e) { } multipart.addBodyPart(messageBodyPart); } } //处理要发送的html文件,主要是针对html文件中的图片 private String getContent(String searchString, String mailContent) { String afterReplaceStr = ""; String content = mailContent; String sub = ""; String end = ""; String rpstring = ""; int k = 0; int n = 0; int m = 0; for (int i = 0; i < mailContent.length(); i++) { i = content.indexOf(searchString); if (i != -1) { content = content.substring(i); n = content.indexOf(">"); sub = content.substring(1, n); k = sub.indexOf("src=\""); if (k == -1) { k = sub.indexOf("src=") + 4; end = " "; } else { end = "\""; k = k + 5; } m = sub.indexOf(end, k); //System.out.println(m); rpstring = sub.substring(k, m); if (rpstring.startsWith("http")) { System.out.println("不需要处理:" + rpstring); } else { arrayList1.add(rpstring); } content = content.substring(m+1); }else{ i =mailContent.length(); } } afterReplaceStr = mailContent; //在html文件中用"cid:"+Content-ID来替换原来的图片链接 for (int c = 0; c < arrayList1.size(); c++) { arrayList2.add(createRandomStr()); String addString = "cid:" + (String) arrayList2.get(c); mailContent=mailContent.replaceFirst((String) arrayList1.get(c), addString); afterReplaceStr = mailContent; } return afterReplaceStr; } //产生一个随机字符串,为了给图片设定Content-ID值 private String createRandomStr() { char[] randomChar = new char[8]; for (int i = 0; i < 8; i++) { randomChar[i] = (char) (Math.random() * 26 + 'a'); } String replaceStr = new String(randomChar); return replaceStr; } /** * 从HTML文件中得到邮件内容 * @param htmlFilePath String * @return String */ public String getHtmlFromFile(String htmlFilePath) { StringBuffer htmlBuffer = new StringBuffer(); try { File htmlFile = new File(htmlFilePath); FileReader fr = new FileReader(htmlFile); BufferedReader in = new BufferedReader(fr); String inLine; while ( (inLine = in.readLine()) != null) { htmlBuffer.append(inLine); } } catch (IOException e) { System.out.println(e.getMessage()); } return htmlBuffer.toString(); } }