六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 165|回复: 0

javamail发送html邮件

[复制链接]

升级  76%

48

主题

48

主题

48

主题

秀才

Rank: 2

积分
164
 楼主| 发表于 2013-2-7 20:49:21 | 显示全部楼层 |阅读模式
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 就可以了
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表