⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailsendhtml.java

📁 利用JavaMail实现的发送及接收邮件的程序
💻 JAVA
字号:
package com.digipower.automail.mailsender;/** * <p>Title: </p> * <p>Description: TestStruts</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: foxconn</p> * @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("<img ", mailContent);//System.out.println(htmlContent); //1    messageBodyPart.setContent(htmlContent, "text/html;charset=GBK");    multipart.addBodyPart(messageBodyPart);    //调用处理html文件中的图片方法    processHtmlImage(mailContent);  }  //处理html页面上的图片方法如下:  private void processHtmlImage(String mailContent) throws MessagingException {    for (int i = 0; i < arrayList1.size(); i++) {      messageBodyPart = new MimeBodyPart();      DataSource source = new FileDataSource(this.unSendMailPath +                                             (String) arrayList1.get(i));      messageBodyPart.setDataHandler(new DataHandler(source));      String contentId = "<" + (String) arrayList2.get(i) + ">";//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();  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -