ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java实现邮件发送(QQ邮箱例)

2021-12-28 16:31:15  阅读:155  来源: 互联网

标签:QQ Java new public mail 邮箱 message PROPERTIES


Java邮件发送(QQ邮箱例)

准备工作:电脑登陆QQ邮箱,设置–>账户–>开启SMTP服务,获得邮箱授权码,导入mail.jar

在这里插入图片描述

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.3</version>
</dependency>

SendMail.java

public class SendMail {

    private static final Properties PROPERTIES;
    private static final Session SESSION;

    static {
        //链接前准备,初始化参
        PROPERTIES = new Properties();
        //发送邮箱服务器
        PROPERTIES.setProperty("mail.smtp.host", "smtp.qq.com");
        //发送端口号
        // properties.setProperty("mail.smtp.port","1465");
        //打印信息到控制台
        PROPERTIES.setProperty("mail.debug", "true");
        //是否开启权限设置
        PROPERTIES.setProperty("mail.smtp.auth", "true");
        //发送协议为简单邮件传输协议
        PROPERTIES.setProperty("mail.transport", "smtp");
        //SSL加密
        PROPERTIES.setProperty("mail.smtp.ssl.enable", "true");
        //建立两点之间的连接
        SESSION = Session.getDefaultInstance(PROPERTIES, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                //设置发件人邮箱,通过密码认证
                return new PasswordAuthentication("发件人邮箱", "授权码");
            }
        });
    }

    //创建邮箱对象
    Message message = new MimeMessage(SESSION);
    public  void sendMail(String data){

        try {
            //设置发件人
            message.setFrom(new InternetAddress("发件人邮箱"));
            //设置收件人
           // message.setRecipient(Message.RecipientType.TO,new InternetAddress(name));
            //发送多人邮件
            //设置主题
            message.setSubject("验证码");
            //发送邮件正文及编码
            message.setContent(data,"text/html;charset=UTF-8");
            //时间
            message.setSentDate(new Date());
            //发送一封邮件
            Transport.send(message);

        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
    //单发
   public void setRecipient(String name){
        try {
            message.setRecipient(Message.RecipientType.TO,new InternetAddress(name));
        } catch (MessagingException e) {
            e.printStackTrace();
        }

   }
   //多发
   public void setRecipient(List<String > names){
       try {
           for (String name :names){
               //addRecipient
               message.addRecipient(Message.RecipientType.TO,new InternetAddress(name));
           }

       } catch (MessagingException e) {
           e.printStackTrace();
       }
   }
}

Test .java

public class Test {
    public static void main(String[] args) {
        int ym =(int) (1000+Math.random()*(9999-1+1));
        Random random = new Random();
        int r = random.nextInt(9000)+1000;
        SendMail sendMail = new SendMail();
        List<String> list = new ArrayList<String>();
        list.add("收件人1邮箱");
        list.add("收件人2邮箱");
       // sendMail.setRecipient("收件人邮箱");
        sendMail.setRecipient(list);//添加收件人
        sendMail.sendMail("<h1>来自悠米的验证码邮件,请接收你的验证码:" +
              "</h1><p>你的验证码是:"+ym+",请妥善保管你的验证码!</p>");
    }
}

标签:QQ,Java,new,public,mail,邮箱,message,PROPERTIES
来源: https://blog.csdn.net/qq_46089556/article/details/122195688

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有