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 就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值