Java基础邮件发送

邮件发送

在这里插入图片描述

所采用的协议

发送邮件:SMTP协议
接收邮件:POP3协议

所需jar包

mail,jar 下载地址:https://mvnrepository.com/artifact/javax.mail/mail/1.4.7
activation.jar 下载地址:https://mvnrepository.com/artifact/javax.activation/activation/1.1.1

邮件发送的实现(简单邮件纯文本)

设置邮件服务器,邮件协议,验证用户名密码

		Properties prop = new Properties();
        prop.setProperty("mail.host","smtp.qq.com");    //这只QQ邮箱服务器
        prop.setProperty("mail.transport.protocol","smtp");      //邮件发送协议
        prop.setProperty("mail.smtp.auth","true");      //验证用户名密码

关于QQ邮箱,还要设置SSL加密

		//关于QQ邮箱需要设置SSL加密
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        prop.put("mail.smtp.ssl.enable","true");
        prop.put("mail.smtp.socketFactory",sf);

发送邮件的六个步骤:

1.创建定义整个应用程序所需的环境信息的Session对象

  		//1.创建定义整个应用程序所需的环境信息的Session对象
        Session session = Session.getDefaultInstance(prop, new Authenticator() {
    
    
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
    
    
                return new PasswordAuthentication("[email protected]","授权码");
            }
        });
        //开启Session的Dubug模式,这样就可以查看程序发送Email的状态
        session.setDebug(true);

2.通过Session得到Transport对象

		//2.通过Session得到transport
        Transport ts = session.getTransport();

3.使用邮箱的用户名和授权码连上邮件服务器

		//3.使用邮件的用户名和授权码连上邮件的服务器
        ts.connect("smtp.qq.com","[email protected]","授权码");

4.创建邮件

		//4.创建邮件
        MimeMessage message = new MimeMessage(session);
        //指明发件人
        message.setFrom(new InternetAddress("[email protected]"));
        //指明邮件的收件人
        message.setRecipient(Message.RecipientType.TO,new InternetAddress("[email protected]"));
        //邮件的标题
        message.setSubject("Good Study Day Day Up");

        //邮件的文本内容
        message.setContent("<h1>Java YYDS!</h1>","text/html;charset=UTF-8");

5.发送邮件

		//5.发送邮件
        ts.sendMessage(message,message.getAllRecipients());

6.关闭连接

		//6.关闭连接
        ts.close();

带图片的邮件

以上内容只需要在邮件文本内容处改变即可

		//4.创建邮件
        MimeMessage message = new MimeMessage(session);

        //指明发件人
        message.setFrom(new InternetAddress("[email protected]"));
        //指明邮件的收件人
        message.setRecipient(Message.RecipientType.TO,new InternetAddress("[email protected]"));
        //邮件的标题
        message.setSubject("Good Good Study Day Day Up");

        //准备图片数据
        MimeBodyPart image = new MimeBodyPart();
        //图片需要经过数据处理,DataHandler:数据处理
        DataHandler dh = new DataHandler(new FileDataSource("D:\\代码\\java\\JavaWeb\\文件上传\\邮件发送\\src\\1.jpg"));
        image.setDataHandler(dh);   //在image中放入这个图片的处理数据
        image.setContentID("hh.jpg");   //给图片设置一个ID,以便后面可以使用,名称不可中文

        //准备正文
        MimeBodyPart text = new MimeBodyPart();
        text.setContent("Java YYDS!!!<img src='cid:hh.jpg'> " ,"text/html;charset=UTF-8");

        //描述数据关系
        MimeMultipart mm = new MimeMultipart();
        mm.addBodyPart(text);
        mm.addBodyPart(image);
        mm.setSubType("mixed");

        //设置到消息中,保存修改
        message.setContent(mm);
        message.saveChanges();

总结

邮件发送模板基本固定,若需要使用只需要设置好发件人,收件人,授权码,在文本内容处进行修改即可!

猜你喜欢

转载自blog.csdn.net/shuati2000/article/details/120757667
今日推荐