zoukankan      html  css  js  c++  java
  • Java 发邮件

    1. 邮件协议

      发送邮件协议:smtp

      查收邮件协议:pop3

    2. 依赖

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

    3. 使用qq邮箱给163邮箱发送邮件

      使用前发件箱要开启 SMTP服务 ,并获得授权码

    public class EmailTest {
        public static void main(String[] args) {
            Properties properties = new Properties();
            //设置发送邮件客户端和协议
            properties.setProperty("mail.host","smtp.qq.com");
            properties.setProperty("mail.transport.protocol","smtp");
            //获取会话和传输对象
            Session session = Session.getDefaultInstance(properties);
            Transport ts = null;
            try {
                //获取传输对象发送邮件
                ts = session.getTransport();
                //发送邮件前先进行校验
                ts.connect("xx@qq.com","授权码");
                //构建邮件
                Message message = new MimeMessage(session);
                // 发送人
                message.setFrom(new InternetAddress("xx@qq.com"));
                // 收件人  Message.RecipientType.TO
                //抄送:Message.RecipientType.CC
                //密送:Message.RecipientType.BCC
                message.setRecipient(Message.RecipientType.TO,new InternetAddress("xx@163.com"));
                // 主题
               message.setSubject("使用qq邮箱给163发送邮件");
                // 正文
                message.setContent("测试邮件","text/html;charset=utf-8");
                //message.setSubject("激活邮件");
                //message.setContent("这是一个激活邮件:<a href='http://www.baidu.com'>点击激活</a>","text/html;charset=utf-8");
                //保存邮件
                message.saveChanges();
                //发送邮件
                ts.sendMessage(message,message.getAllRecipients());
            } catch (MessagingException e) {
                e.printStackTrace();
            }finally {
                if (ts != null){
                    try {
                        ts.close();
                    } catch (MessagingException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    4. 封装工具类

    public class EmailUtil {
        /**
         * @param to    收件人
         * @param subject   主题
         * @param context   正文
         */
        public static void sendEmail(String to,String subject,String context){
            Properties properties = new Properties();
            properties.setProperty("mail.host","smtp.qq.com");
            properties.setProperty("mail.transport.protocol","smtp");
            Session session = Session.getDefaultInstance(properties);
            Transport ts = null;
            try {
                ts = session.getTransport();
                ts.connect("xx@qq.com","授权码");
                Message message = new MimeMessage(session);
                message.setFrom(new InternetAddress("xx@qq.com"));
                message.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
                message.setSubject(subject);
                message.setContent(context,"text/html;charset=utf-8");
                message.saveChanges();
                ts.sendMessage(message,message.getAllRecipients());
            } catch (MessagingException e) {
                e.printStackTrace();
            }finally {
                if (ts != null){
                    try {
                        ts.close();
                    } catch (MessagingException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
  • 相关阅读:
    C语言II博客作业01
    vscode使用相关配置
    Ubuntu配置教程
    编译原理复习
    误差与过拟合
    机器学习分类
    SQL语句使用详解
    CRC模2除法
    数据链路层之差错控制(检错编码和纠错编码)->(奇偶校验码、CRC循环冗余码、海明码)
    封装成帧、帧定界、帧同步、透明传输(字符计数法、字符串的首尾填充法、零比特填充的首尾标志法、违规编码法)
  • 原文地址:https://www.cnblogs.com/homle/p/15752215.html
Copyright © 2011-2022 走看看