wangzi6hao 发表于 2013-2-7 20:49:21

javamail发送html邮件

import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.net.URI;/*** 读取邮件模板** @author wangzi6hao**/public class ReadTemplate {    /**    * 读取邮件模板    *    * @param path    *            模板网址路径    * @return    */    public String readTemplate(String path) {      String template = null;      try {            File file = new File(path);            FileInputStream fis = new FileInputStream(file);            InputStreamReader isr = new InputStreamReader(fis,"utf-8");            StringBuffer sb = new StringBuffer();            BufferedReader in = new BufferedReader(isr);            while ((template = in.readLine()) != null) {                sb.append(template);            }            template = sb.toString();      } catch (Exception e) {            System.out.println("读取邮件模版文件出错!");            e.printStackTrace();      }      return template;    }    public static void main(String[] args) throws ClassNotFoundException {      ReadTemplate rt = new ReadTemplate();      Class theClass = ReadTemplate.class;      String path = theClass.getResource("/").toString();      path = path.substring(0, path.indexOf("WEB-INF"));      path = path + "emailTemplet/getUserPwd/index.html";      System.out.println(path);      System.out.println(rt.readTemplate(path));    }} import java.util.Date;import java.util.Properties;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import com.sun.mail.smtp.SMTPTransport;/*** 邮件发送类** @author wangzi6hao**/public class SendMail {    // 以下为设置默认邮件内容    private String smtp = "XXX.XXX.com";// 发送服务器    private String sendEmail = "XXX@XXX.com";// 发送邮件邮箱    private String sendEmailPw = "XXX";//    private String toEmail = "XXX@XXX.com";    private String mailTitle = "XXXX密码找回(请勿回复此邮件)";    private String mailContent = "没有定义邮件内容!";// 邮件内容    private String contentType = "text/html;charset=gb2312";    public boolean sendmail() {      boolean isSend = false;      try {            Session sendMailSession = null;            SMTPTransport transport = null;            Properties props = new Properties();            // 与服务器建立Session的参数设置            props.put("mail.smtp.host", smtp); // SMTP服务器。            props.put("mail.smtp.auth", "true"); // 将这个参数设为true,让服务器进行认证。            SMTPAuthenticator auth = new SMTPAuthenticator(sendEmail,                  sendEmailPw); // ,用户名,密码。            sendMailSession = Session.getInstance(props, auth); // 建立连接。            // SMTPTransport用来发送邮件。            transport = (SMTPTransport) sendMailSession.getTransport("smtp");            transport.connect();            // 创建邮件。            Message newMessage = new MimeMessage(sendMailSession);            newMessage.setFrom(new InternetAddress(sendEmail));            newMessage.setRecipient(Message.RecipientType.TO,                  new InternetAddress(toEmail));// 设置发送目标邮件            newMessage.setSubject(mailTitle);// 设置            newMessage.setSentDate(new Date());            // 使用MimeMultipart和MimeBodyPart才能发HTML格式邮件。            BodyPart bodyPart = new MimeBodyPart();            bodyPart.setContent(mailContent, contentType); // 发一个HTML格式的            Multipart mp = new MimeMultipart();            mp.addBodyPart(bodyPart);            newMessage.setContent(mp);            Transport.send(newMessage);            isSend = true;      } catch (MessagingException e) {            System.out.println("error" + e.getMessage());      }      return isSend;    }    public void setSmtp(String smtp) {      this.smtp = smtp;    }    public void setSendEmail(String sendEmail) {      this.sendEmail = sendEmail;    }    public void setSendEmailPw(String sendEmailPw) {      this.sendEmailPw = sendEmailPw;    }    public void setToEmail(String toEmail) {      this.toEmail = toEmail;    }    public void setMailTitle(String mailTitle) {      this.mailTitle = mailTitle;    }    public void setMailContent(String mailContent) {      this.mailContent = mailContent;    }    public void setContentType(String contentType) {      this.contentType = contentType;    }    public static void main(String[] args) {      ReadTemplate rt = new ReadTemplate();      Class theClass = ReadTemplate.class;      String path = theClass.getResource("/").toString();      path = path.substring(0, path.indexOf("WEB-INF"));      path = path + "emailTemplet/getUserPwd/index.html";      String emailContent = rt.readTemplate(path);      System.out.println(emailContent);      System.out.println("发送完成");    }} import javax.mail.Authenticator;import javax.mail.PasswordAuthentication;public class SMTPAuthenticator extends Authenticator {    private String user;    private String password;    public SMTPAuthenticator(String s, String s1) {      user = s;      password = s1;    }    public PasswordAuthentication getPasswordAuthentication() {      return new PasswordAuthentication(user, password);    }} 请到java.sun.com/products/javamail/ 下载javamail.我的版本是javamail-1.4.1
使用mail.jar 就可以了
页: [1]
查看完整版本: javamail发送html邮件