java发送邮件工具类

29 篇文章 0 订阅

java发送邮件,分为使用外网和不能使用外网的两种情况,在不能使用外网的情况下,可以搭建本地邮件服务器.对这两种情况分别写了demo,针对不同环境下使用.

/**
 * 邮件发送工具类
 */
public class MailUtils {

    /**
     * 本地邮件发送
     * @param email 收件人地址
     * @param emailMsg 发送内容
     * @throws AddressException 地址异常
     * @throws MessagingException 邮件消息异常
     */
    public static void sendEmail(String email, String emailMsg)
            throws AddressException, MessagingException {
        // 1.创建一个程序与邮件服务器会话对象 Session
        Properties props = new Properties();
        //设置发送的协议
        props.setProperty("mail.transport.protocol", "SMTP");
        //设置发送邮件的服务器
        props.setProperty("mail.host", "127.0.0.1");
        props.setProperty("mail.smtp.auth", "true");
        // 创建验证器
        Authenticator auth = new Authenticator(){

            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // 设置发送人的账号和密码
                return new PasswordAuthentication("admin","123");
            }

        };

        Session session = Session.getInstance(props,auth);

        // 2.创建一个Message,它相当于是邮件内容
        Message message = new MimeMessage(session);

        //设置发送者
        message.setFrom(new InternetAddress("admin@maibenben.com"));
        //设置发送方式与接收者
        message.setRecipient(RecipientType.TO, new InternetAddress(email));

        //设置邮件主题
        message.setSubject("用户激活!");

        //设置邮件内容
        message.setContent(emailMsg,"text/html;charset=UTF-8");
        // 3.创建 Transport用于将邮件发送
        Transport.send(message);
    }

    /**
     * 本地邮件发送
     * @param to 邮件地址
     * @param code 激活码
     */
    public static void sendEmail2(String to,String code){
        //1.创建一个程序与邮箱服务器对话session对象
        Properties props = new Properties();
        //设置发送邮件的服务器
        props.setProperty("smtp.host", "localhost");
        //创建session,创建验证器
        Session session = Session.getInstance(props,new Authenticator() {

            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // 设置发送人的账号和密码
                return new PasswordAuthentication("admin","123");
            }

        });
        //2.创建Message对象,相当于邮件内容
        Message message = new MimeMessage(session);
        //设置发件人
        try {
            message.setFrom(new InternetAddress("admin@maibenben.com"));
            //设置发送方式与收件人
            message.addRecipient(RecipientType.TO,new InternetAddress(to));
            //设置邮件主题
            message.setSubject("来自商城的激活邮件!");
            //设置内容
            String url = "http://127.0.0.1:8080/store/UserServlet?method=active&code="+code;
            message.setContent("<h1>来自商城的邮件,激活请点击以下链接!</h1><h3><a href='"+url+"'>"+url+"</a></h3>","text/html;charset=UTF-8");
            //3.创建Transport对象,发送邮件
            Transport.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }

    }

    /**
     * 外网邮件发送
     * @param email 邮件地址
     * @param code 激活码
     */
    public static void sendEmail3(String to, String code) {
        //1.创建与邮箱服务器对话的Session对象
        Properties props = new Properties();
        //设置发送邮件的服务器
        props.setProperty("mail.host", "smtp.163.com");
        props.setProperty("mail.stmp.auth", "true");//指定验证为true

        Session session = Session.getInstance(props,new Authenticator(){

            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                //设置发件人的账号和密码
                return new PasswordAuthentication("shu","1234shua");
            }

        });

        //2.创建Message对象,它是邮件的内容
        Message message = new MimeMessage(session);

        //设置发件人
        try {
            //设置发件人地址
            message.setFrom(new InternetAddress("shu@163.com"));
            //设置发送方式和收件人
            message.addRecipient(RecipientType.TO,new InternetAddress("hai@126.com"));
            //设置主题
            message.setSubject("来自商城的激活邮件");
            //设置内容,也可直接把内容写入code中
            String url = "http://localhost:8080/store/UserServlet?method=active&code="+code;
            message.setContent("<h1>来自商城的激活邮件!激活请点击以下链接!</h1><h3><a href='"+url+"' >"+url+"</a></h3>","text/html;charset=UTF-8");
            //3.创建Transport对象,用于发送邮件
            Transport.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }

    }


}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值