java:发送邮件

9 篇文章 0 订阅
3 篇文章 2 订阅

一、pom.xml

 <!-- 添加邮件发送的依赖 -->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-context-support</artifactId>
	<version>5.0.0.RELEASE</version>
</dependency>
<!--邮件发送-->
<dependency>
	<groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
	<version>1.6.1</version>
</dependency>

二、配置文件.properties

#项目ip
my_ip=localhost:8080
#邮件
mail.from=xxxx@163.com
#服务器主机名
mail.smtp.host=smtp.163.com
mail.smtp.username=xxxxx@163.com
#密码/客户端授权码
mail.smtp.password=xxxxx
#编码字符
mail.smtp.defaultEncoding=utf-8
#是否进行用户名密码校验
mail.smtp.auth=true
#设置超时时间
mail.smtp.timeout=20000
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.port=465
mail.smtp.socketFactory.port =465

三、发送工具类

package com.jc.JunJian.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
import java.util.ResourceBundle;


public class MailUtil extends Thread {
    private static final Logger logger = LoggerFactory.getLogger(MailUtil.class);
    private static String IP;
    private static String HOST;
    private static String USERNAME;
    private static String PASSWORD;
    private static String DEFAULTENCODING;
    private static String AUTH;
    private static String TIMEOUT;
    private static String SOCKETFACTORYCLASS;
    private static String SOCKETFACTORYPORT;
    private static String PORT;
    private static String FROM;//发件人
    private static String TO;//收件人
    private static String SUBJECT; //主题
    private static String CONTENT;//内容
    static {
            ResourceBundle rb = ResourceBundle.getBundle("project"); //即project.properites没有.properties结尾
            IP = rb.getString("my_ip");
            HOST = rb.getString("mail.smtp.host");
            USERNAME = rb.getString("mail.smtp.username");
            PASSWORD = rb.getString("mail.smtp.password");
            DEFAULTENCODING = rb.getString("mail.smtp.defaultEncoding");
            AUTH = rb.getString("mail.smtp.auth");
            TIMEOUT = rb.getString("mail.smtp.timeout");
            SOCKETFACTORYCLASS = rb.getString("mail.smtp.socketFactory.class");
            SOCKETFACTORYPORT = rb.getString("mail.smtp.socketFactory.port");
            PORT = rb.getString("mail.smtp.port");
            FROM = rb.getString("mail.from");
    }

      public MailUtil(String toMail,String subject,String content){
        super();
        this.TO = toMail;
        this.SUBJECT = subject;
        this.CONTENT = content;
    }

    @Override
    public void run() {
        try {
            Properties props = new Properties();
            props.setProperty("mail.smtp.host",HOST);
            props.setProperty("mail.smtp.port",PORT);
            props.setProperty("mail.smtp.socketFactory.class", SOCKETFACTORYCLASS);
            props.setProperty("mail.smtp.socketFactory.port", SOCKETFACTORYPORT);
            props.setProperty("mail.smtp.auth",AUTH);
            props.setProperty("mail.smtp.defaultEncoding",DEFAULTENCODING);
            props.setProperty("mail.smtp.timeout",TIMEOUT);
            Session session = Session.getInstance(props, new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(USERNAME,PASSWORD);
                }
            });
            session.setDebug(true);
            final MimeMessage  message = new MimeMessage(session);
            message.setFrom(new InternetAddress(FROM));
            message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(TO));
            message.setSubject(SUBJECT);
            message.setContent(CONTENT,"text/html;charset=utf-8");
            final Transport trans = session.getTransport("smtp");
            trans.send(message);
            logger.info("邮件发送成功");
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }

    }

 /*   public static void main(String[] args){
        String html = "<h2>亲爱的"+"557894"+"用户你好:</h2><br/>";
        html += "&nbsp&nbsp恭喜你的账号:"+"12346"+" 注册成功!请48小时内,点击此链接激活" +
                "<a href = 'http://"+IP+"/user/active/"+"123456"+"'>"
                +"13213"+"</a>";
        new MailUtil("xxxxx@qq.com","测试",html).start();
    }*/

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值