• (一)JavaMail发送简单邮件


    1,导入依赖

    <dependency>
                <groupId>com.sun.mail</groupId>
                <artifactId>jakarta.mail</artifactId>
                <version>1.6.3</version>
    </dependency>
    

    或者,导入另外一种依赖,效果都一样的:

    <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>1.5.0-b01</version>
    </dependency>
    <dependency>
                <groupId>org.apache.xbean</groupId>
                <artifactId>xbean-spring</artifactId>
                <version>3.7</version>
    </dependency>
    

    2,代码

    package base;
    
    import com.sun.mail.util.MailSSLSocketFactory;
    import javax.mail.*;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import java.util.Properties;
    
    /**
     * @description:
     * @author: lv
     * @time: 2020/5/19 9:52
     */
    public class OfficerTest1 {
    
        public static void main(String[] args) throws Exception{
            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加密,加上以下代码即可
            MailSSLSocketFactory sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);
            prop.put("mail.smtp.ssl.enable", "true");
            prop.put("mail.smtp.ssl.socketFactory", sf);
    
            //使用JavaMail发送邮件的5个步骤
    
            //创建定义整个应用程序所需的环境信息的 Session 对象
    
            Session session = Session.getDefaultInstance(prop, new Authenticator() {
                public PasswordAuthentication getPasswordAuthentication() {
                    //发件人邮件用户名、授权码
                    return new PasswordAuthentication("发件人邮件地址@qq.com", "授权码");
                }
            });
    
    
            //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
            session.setDebug(true);
    
            //2、通过session得到transport对象
            Transport ts = session.getTransport();
    
            //3、使用邮箱的用户名和授权码连上邮件服务器
            ts.connect("smtp.qq.com", "发件人邮件地址@qq.com", "授权码");
    
            //4、创建邮件
    
            //创建邮件对象
            MimeMessage message = new MimeMessage(session);
    
            //指明邮件的发件人
            message.setFrom(new InternetAddress("发件人@qq.com"));
    
            //指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
            message.setRecipient(Message.RecipientType.TO, new InternetAddress("收件人@qq.com"));
    
            //邮件的标题
            message.setSubject("只包含文本的简单邮件");
    
            //邮件的文本内容
            message.setContent("你好啊!", "text/html;charset=UTF-8");
    
            //5、发送邮件
            ts.sendMessage(message, message.getAllRecipients());
    
            ts.close();
        }
    
    }
    

     3,发送多人

    package base;
    
    import com.sun.mail.util.MailSSLSocketFactory;
    import javax.mail.*;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import java.util.Date;
    import java.util.Properties;
    
    /**
     * @description:
     * @author: lv
     * @time: 2020/5/19 9:52
     */
    public class OfficerTest1 {
    
        public static void main(String[] args) throws Exception{
            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加密,加上以下代码即可
            MailSSLSocketFactory sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);
            prop.put("mail.smtp.ssl.enable", "true");
            prop.put("mail.smtp.ssl.socketFactory", sf);
    
            //使用JavaMail发送邮件的5个步骤
    
            //创建定义整个应用程序所需的环境信息的 Session 对象
    
            Session session = Session.getDefaultInstance(prop, new Authenticator() {
                public PasswordAuthentication getPasswordAuthentication() {
                    //发件人邮件用户名、授权码
                    return new PasswordAuthentication("发件人邮件地址@qq.com", "授权码");
                }
            });
    
    
            //开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
            session.setDebug(true);
    
            //2、通过session得到transport对象
            Transport ts = session.getTransport();
    
            //3、使用邮箱的用户名和授权码连上邮件服务器
            ts.connect("smtp.qq.com", "发件人邮件地址@qq.com", "授权码");
    
            //4、创建邮件
    
            //创建邮件对象
            MimeMessage message = new MimeMessage(session);
    
            // 设置发送时间
            message.setSentDate(new Date());
            //指明邮件的发件人
            //设置多个收件人
            String users = "发件人1@qq.com,发件人2@qq.com";//用逗号隔开
            Address[] internetAddressTo = new InternetAddress().parse(users);
            //指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
            message.setRecipients(Message.RecipientType.TO, internetAddressTo);
    
            //邮件的标题
            message.setSubject("只包含文本的简单邮件");
    
            //邮件的文本内容
            message.setContent("你好啊!", "text/html;charset=UTF-8");
    
            //5、发送邮件
            ts.sendMessage(message, message.getAllRecipients());
    
            ts.close();
        }
    
    }
    

      

  • 相关阅读:
    springboot雷神更新
    JVM整理文档
    这是我见过BIO/NIO/AIO讲的最清楚的博客了
    redis主从机制
    mybatis是如何防止sql注入的
    分布式锁的实现方式简介
    Nginx简介
    .net 下的集合
    C#模拟百度登录
    WPF 将PPT,Word转成图片
  • 原文地址:https://www.cnblogs.com/lvchengda/p/12966047.html
Copyright © 2020-2023  润新知