基于JavaMail的Java邮件发送:简单快速上手

简介: 基于JavaMail的Java邮件发送:简单快速上手

1.什么事JavaMail


JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。


2.JavaMail的协议


邮件开发的相关协议

SMTP:SMTP 发送协议 默认端口:25 使用SSL 端口改为465

POP:POP这个版本用的最多 接收协议 默认端口:110


3.邮件发送接受的过程分析


微信图片_20220530224849.png

4.邮件开发的准备工作


4.1申请邮箱开通SMPT服务


这里使用网易云邮箱 进入后开通SMPT服务微信图片_20220530224856.png

点击开启SMTP服务 扫码发送短信开通 填写你所使用的设备 记住授权码 后面要使用 这很重要微信图片_20220530224900.png

4.2引入JavaMail


在pom.xml中添加如下依赖

        <!-- Javamail -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.4</version>
        </dependency>

为了让Spring与JavaMail集成 还需要在pom.xml中引入如下依赖

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-suppport</artifactId>
            <version>${spring.version}</version>
        </dependency>

如果是web项目 引入如下jar包微信图片_20220530225304.png

5.传统的邮件开发


微信图片_20220530224906.png

6.邮件发送工具类抽取


package com.czxy.utils;
import javax.mail.Address;
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;
/**
 * 邮件发送的工具类
 * @author Administrator
 */
public class MailUtil {
  /**
   * 发送邮件
   * @param to      收件人
   * @param subject   主题
   * @param content   内容
   * @throws Exception
   */
  public static void sendMsg(String to ,String subject ,String content) throws Exception{
    // 创建属性文件
    Properties props = new Properties();
    // 设置主机地址   smtp.qq.com    smtp.sina.com  使用的本地易邮服务器
    props.setProperty("mail.smtp.host", "smtp.163.com");
    // 认证,提供用户名和密码进行校验
    props.setProperty("mail.smtp.auth", "true");
    //2.产生一个用于邮件发送的Session对象,连接服务器主机
    Session session = Session.getInstance(props);
    //3.产生一个邮件的消息对象
    MimeMessage message = new MimeMessage(session);
    //4.设置消息的发送者
    Address fromAddr = new InternetAddress("发件人的邮箱账号");
    message.setFrom(fromAddr);
    //5.设置消息的接收者
    Address toAddr = new InternetAddress(to);
    //TO 直接发送  CC抄送    BCC密送
    message.setRecipient(RecipientType.TO, toAddr);
    //6.设置主题
    message.setSubject(subject);
    //7.设置正文
    message.setText(content);
    //8.准备发送,得到火箭
    Transport transport = session.getTransport("smtp");
    //9.设置火箭的发射目标 
    /**
     * 1. 主机地址
     * 2. 发件人的邮箱帐号
     * 3. 账号对应的密码
     */
    transport.connect("smtp.163.com", "发送人的邮箱账号", "前面保存的授权码");
    //10.发送
    transport.sendMessage(message, message.getAllRecipients());
    //11.关闭
    transport.close();
  }
}


相关文章
|
2天前
|
Java 机器人 程序员
如何在Java中实现邮件发送功能?
如何在Java中实现邮件发送功能?
|
30天前
|
Java API 数据安全/隐私保护
Java 发送邮件
5月更文挑战第20天
|
1月前
|
Java
【Java专题_03】使用springboot发送邮件
【Java专题_03】使用springboot发送邮件
36 2
|
8月前
|
Java
【Java】SpringBoot邮件发送实现
这里我用的是网易免费企业邮箱。参数请不要照抄,改成适合自己的。
117 0
|
XML Java 数据安全/隐私保护
如何使用Java整合Spring框架来发送邮件?
如何使用Java整合Spring框架来发送邮件?
112 1
Java-工具类之发送邮件
Java-工具类之发送邮件
228 0
Java实战:使用Hutool中的MailUtil实现邮件的发送
今天给大家分享使用Hutool中的MailUtil实现邮件的发送,主要实现了发送普通文本邮件、发送Html文件、发送邮件包含本地附件、远程下载附件、指定多个发件人的功能。具体的大家可以互相沟通交流!
Java实战:使用Hutool中的MailUtil实现邮件的发送
Java技术:SpringBoot实现邮件发送功能
邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助!
Java技术:SpringBoot实现邮件发送功能
|
Java API 网络安全
基于JavaMail的Java邮件发送:简单快速上手
基于JavaMail的Java邮件发送:简单快速上手
347 0
基于JavaMail的Java邮件发送:简单快速上手
|
监控 安全 Java
Java笔记:SpringBoot发送邮件(1)
Java笔记:SpringBoot发送邮件
136 0