基于JavaMail的Java邮件发送

编辑: admin 分类: java 发布时间: 2021-12-03 来源:互联网
目录
  • 邮件绑定功能
  • 1、javamail发送邮件
    • 1.1、简介
    • 1.2、工具类
    • 1.3、工具类测试
  • 2、客户注册时,发送祝贺邮件

    邮件绑定功能

    【需求】

    • 1、 用户注册时,输入邮箱
    • 2、 通过Javamail技术,向用户邮箱发送一封祝贺邮件

    1、javamail发送邮件

    1.1、简介

    什么是javamail?

    在这里插入图片描述

    1.2、工具类

    首先从哪个邮箱发出邮件,所以得发送邮件账号支持 程序发送邮件

    第一步:配置网易 开启客户端授权码

    (1)授权码申请:

    在这里插入图片描述


    选中POP3/SMTP服务和IMAP/SMTP服务,点击开启,如果已开启,会显示关闭

    在这里插入图片描述

    授权码就是JAVA代码登录邮箱的密码:MQKFLKEKMUHOKVPS

    在这里插入图片描述

    第二步:在mail-demo01项目中,配置pom.xml 添加javamail的坐标。

    在这里插入图片描述

    <!-- 导入javamail的坐标 -->
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4.7</version>
    </dependency>
    

    第三步:根据需要,编辑发送邮件正文

    步骤:

    • 1 设置邮件发送的属性
    • 2 设置主机地址
    • 3 设置是否打开验证
    • 4 创建链接
    • 5 创建邮件
    • 6 设置发送者
    • 7 设置接受者
    • 8 设置标题
    • 9 设置正文
    • 10 坐火箭
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMessage.RecipientType;
    import java.util.Properties;
    public class MailUtil {
       public static String smtp_host = "smtp.163.com"; // 网易
       public static String username = "222@163.com"; // 邮箱
       public static String password = "q7w8e9a4s5d6"; // 授权码(登录邮箱-->设置-->邮箱安全设置-->客户端授权密码),这里不是邮箱的密码,切记!
       public static String from = "222@163.com"; // 来源邮箱,使用当前账号
    
       public static void sendMail(String to, String subject, String text) throws Exception {
          // 1 准备发送邮件需要的参数
          Properties props = new Properties();
          // 设置主机地址 smtp.qq.com smtp.126.com smtp.163.com
          props.put("mail.smtp.host", smtp_host);
          // 是否打开验证:只能设置true,必须打开
          props.put("mail.smtp.auth", true);
    
          // 2 连接邮件服务器
          Session session = Session.getDefaultInstance(props);
          // 3 创建邮件信息
          MimeMessage message = new MimeMessage(session);
    
          // 4 设置发送者
          InternetAddress fromAddress = new InternetAddress(from);
          message.setFrom(fromAddress);
          // 5 设置接收者
          InternetAddress toAddress = new InternetAddress(to);
          // to:直接接收者 cc:抄送 bcc暗送
          message.setRecipient(RecipientType.TO, toAddress);
          // 6 设置主题
          message.setSubject(subject);
          // 7 设置正文
          message.setText(text);
    
          // 设置HTML方式发送
          //message.setContent(text, "text/html;charset=utf-8");
    
          // 8 发送:坐火箭
          Transport transport = session.getTransport("smtp");// 参数不能少,表示的是发送协议
          // 登录邮箱,此处的密码是授权码
          transport.connect(username, password);
          transport.sendMessage(message, message.getAllRecipients());
          transport.close();
    
          System.out.println("ok");
       }
       
       public static void main(String[] args) {
          try {
             MailUtil.sendMail("333@qq.com", "激活测试", "test");
          } catch (Exception e) {
             e.printStackTrace();
          }
       }
       
    }
    

    1.3、工具类测试

    使用main方法进行测试。

    public static void main(String[] args) {
        try {
            MailUtil.sendMail("333@qq.com", "激活测试", "test");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    

    2、客户注册时,发送祝贺邮件

    在这里插入图片描述

    到此这篇关于基于JavaMail的Java邮件发送的文章就介绍到这了,更多相关Java Mail内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

    【文章来源:新加坡服务 欢迎留下您的宝贵建议】