阿里云通过邮箱发送验证码

1.首先导入所需要的jar包,在pom.xml加入

 <!--发送邮件的jar包-->
 <dependency>
     <groupId>javax.mail</groupId>
     <artifactId>mail</artifactId>
     <version>1.4.7</version>
 </dependency>

2.发送邮件的代码:

import javax.mail.Address;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

 public String sendMail(String email) {
        String result = "{\"result\":%b,\"msg\":\"%s\"}";
        String from = "发邮件人邮箱地址";        //邮件发送人的邮件地址
        String to = email;                     //需要发送邮件的地址
        String username = "发邮件人邮箱地址";   //邮件发送人的邮件地址
        String password = "密码";             //发件人的邮件密码

        int ran = (int)(Math.random()*(9999-1000+1))+1000;//产生1000-9999的随机数

        //定义Properties对象,设置环境信息
        Properties props = new Properties();

        //设置邮件服务器的地址
        props.setProperty("mail.smtp.host","smtp.mxhichina.com");//指定的smtp服务器 指定发送邮件的主机smtp.qq.com(QQ)|smtp.163.com(网易)
        props.setProperty("mail.smtp.auth","true");
        props.setProperty("mail.transport.protocol","smtp"); //设置发送邮件使用的协议

        //创建Session对象,session对象表示整个邮件的环境信息
        try {
            Session session = Session.getInstance(props);
            //设置输出调试信息
            session.setDebug(true);
            //Message的实例对象表示一封电子邮件
            MimeMessage message = new MimeMessage(session);
            //设置发件人的地址
            message.setFrom(new InternetAddress(from));
            //设置主题
            message.setSubject("获取验证码");
            //设置邮件的文本内容
            String context = "验证码:%d,如非本人操作请忽略本短信。";
            context = String.format(context,ran);
            message.setContent(context,"text/html;charset=utf-8");
            //从session的环境中获取发送邮件的对象
            Transport transport = session.getTransport();
            //连接邮件服务器
            transport.connect("smtp.mxhichina.com",25,username,password);
            //设置收件人地址,并发送消息
            transport.sendMessage(message,new Address[]{new InternetAddress(to)});
            transport.close();
            return String.format(result,true,"发送成功");
        } catch (Exception e) {
            e.printStackTrace();
            return String.format(result,false,e.getMessage());
        }

    }

猜你喜欢

转载自blog.csdn.net/huxiaodong1994/article/details/81082179