基于Java实现简单的邮件群发功能

目录
  • pom文件引入第三方依赖
  • java代码如下
  • 运行测试

pom文件引入第三方依赖

		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4</version>
		</dependency>
		<!--lombok-->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>

java代码如下

import lombok.Data;

import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

/**
 * Created by tarzan liu on 2021/5/9.
 */
public abstract class EmailUtil {

    private static final Session session;

    private static final EmailAuthenticator authenticator;

    static {
        InputStream inputStream = null;
        try {
            inputStream = EmailUtil.class.getResourceAsStream("/email.properties");
            Properties properties = new Properties();
            properties.load(inputStream);

            authenticator = new EmailAuthenticator();
            String username = properties.getProperty("email.username");
            authenticator.setUsername(username);

            String password = properties.getProperty("email.password");
            authenticator.setPassword(password);

            String smtpHostName = "smtp." + username.split("@")[1];
            properties.put("mail.smtp.auth", "true");
            properties.put("mail.smtp.host", smtpHostName);

            session = Session.getInstance(properties, authenticator);
        } catch (Exception e) {
            throw new RuntimeException("init error.");
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    private EmailUtil() { }

    /**
     * 群发邮件方法
     */
    private static void massSend(List<String> recipients, SimpleEmail email) throws MessagingException {
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(authenticator.getUsername()));
        InternetAddress[] addresses = new InternetAddress[recipients.size()];
        for (int index = 0; index < recipients.size(); index ++) {
            addresses[index] = new InternetAddress(recipients.get(index));
        }
        message.setRecipients(RecipientType.TO, addresses);
        message.setSubject(email.getSubject());
        message.setContent(email.getContent(), "text/html;charset=utf-8");

        Transport.send(message);
    }

    /**
     * 发送邮件
     */
    public static void send(String recipient, SimpleEmail email) throws MessagingException {
        List<String> recipients = new ArrayList<>();
        recipients.add(recipient);
        massSend(recipients, email);
    }

    //可以单独建一个类
    @Data
    public static class SimpleEmail {
        private String subject;
        private String content;
    }

    public static void main(String[] args) throws Exception {
        SimpleEmail simpleEmail = new SimpleEmail();
        simpleEmail.setSubject("今天你学习了么?");
        simpleEmail.setContent("今天你写博客了么");
        send("1334512682@qq.com", simpleEmail);
    }
}

email.properties 系统邮箱配置

email.username=###@163.com
email.password=###

你的邮箱账号和密码,也可以省去配置文件,直接把账号密码写死在代码。

运行测试

右键run 运行主方法。

将发送的邮箱绑定到微信上,还能实现微信提醒功能!

到此这篇关于基于Java实现简单的邮件群发功能的文章就介绍到这了,更多相关Java邮件群发内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java实现简单发送邮件功能

    本文实例为大家分享了java实现简单发送邮件的具体代码,供大家参考,具体内容如下 添加依赖 <!--发送邮件API-->     <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api -->     <dependency>       <groupId>javax.mail</groupId>       <artifactId>javax.mail-ap

  • java实现邮件发送详解

    java实现邮件发送逻辑并不复杂(不包含附件),只是根据官方调用官方提供的sdk,首先需要引入maven依赖: javax.mail <dependency > <groupId >com.sun.mail</groupId > <artifactId >javax.mail</artifactId > <version >1.6.0</version > </dependency > 然后构造发送邮件所需的实

  • 利用java实现邮箱群发功能

    本文实例为大家分享了java实现邮箱群发的具体代码,供大家参考,具体内容如下 近来无事,在网上看了一些大牛文章,其中看到一篇比较好的,分享给大家! 下面是代码 邮箱实体 import java.io.Serializable; /** * 邮件实体类 */ public class Mail implements Serializable { /** * 序列号 */ private static final long serialVersionUID = -356221821416897524

  • Java实现邮件发送功能

    Java实现邮件发送的具体代码,供大家参考,具体内容如下 一.邮件服务器与传输协议 要在网络上实现邮件功能,必须要有专门的邮件服务器.这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中. SMTP服务器地址:一般是 smtp.xxx.com,比如163邮箱是smtp.163.com,qq邮箱是smtp.qq.com. SMTP协议 通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器). POP3协议 通

  • 基于JavaMail的Java邮件发送

    目录 邮件绑定功能 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实战之邮件的撰写和发送

    目录 1.xml文件 2.Java文件 3.步骤 3.1.xml文件的建立过程 3.2.Java文件的建立 4.密钥 5.后记 1.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta

  • 基于Java实现简单的邮件群发功能

    目录 pom文件引入第三方依赖 java代码如下 运行测试 pom文件引入第三方依赖 <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <!--lombok--> <dependency> <groupId>

  • 基于java实现简单的银行管理系统

    页面代码之一: package org.vector.view; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.

  • java实现简单解析XML文件功能示例

    本文实例讲述了java实现简单解析XML文件功能.分享给大家供大家参考,具体如下: package demo; import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException;

  • Python基于socket实现简单的即时通讯功能示例

    本文实例讲述了Python基于socket实现简单的即时通讯功能.分享给大家供大家参考,具体如下: 客户端tcpclient.py # -*- coding: utf-8 -*- import socket import threading # 目标地址IP/URL及端口 target_host = "127.0.0.1" target_port = 9999 # 创建一个socket对象 client = socket.socket(socket.AF_INET,socket.SOC

  • 详解java实现简单扫码登录功能(模仿微信网页版扫码)

    java实现简单扫码登录功能 模仿微信pc网页版扫码登录 使用js代码生成qrcode二维码减轻服务器压力 js循环请求服务端,判断是否qrcode被扫 二维码超时失效功能 二维码被扫成功登录,服务端产生sessionId,传到页面使用js保存cookie 多线程 生成qrcode相关js jquery.qrcode.js 代码 页面div <div class="pc_qr_code"> <input type="hidden" id="

  • Java实现简单双色球摇奖功能过程解析

    这篇文章主要介绍了Java实现简单双色球摇奖功能过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 双色球:从1-33号球中选取6个红球,且红球不重复 从1-16号球中选取一个篮球 话不多说 上代码~~~ package Javaee; import java.util.Arrays; import java.util.Random; public class DoubleChromosphere { public static void

  • Java实现简单的表达式计算器功能示例

    本文实例讲述了Java实现简单的表达式计算器功能.分享给大家供大家参考,具体如下: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔.没有非法表达式.当一行中只有0时输入结束,相应的结果不要输出. Output 对每个测试用例输出1行,即该表达式的值,精确到小数点后2位. Sample Input 1 + 2 4 + 2 * 5 - 7 / 11 0 S

  • 基于Java实现简单的时序数据压缩算法

    目录 背景 整数 Varint ZigZag Delta2 Simple8b 浮点数 有损压缩 无损压缩 字符串 标签型 非标签型 背景 今年在公司内部主导了两个的行情数据系统的构建,两者均使用到了常见的时序数据压缩算法. 这里简单总结一下过程中积累的一些经验. 让我们先来思考一个问题:压缩算法生效的前提是什么? 数据本身至少要符合以下两种特性其一: 数据存在冗余 数据符合特定的概率分布 在时序数据领域,数据冗余度与相似度较高,因此天生适合进行压缩. 但对于不同类型的数据,其所适用的压缩算法也大

  • 基于java实现简单发红包功能

    本文实例为大家分享了java实现简单发红包的具体代码,供大家参考,具体内容如下 这个案例是普通红包,均分的,不是拼手气红包. package nuc.edu.day01.demo05; /** * @author Administrator * 用户类 */ public class User { private String name; private Double money; public User() { } //显示当前余额 public void show(){ System.out

  • Java实现简单的聊天室功能

    本文实例为大家分享了Java实现简单聊天室功能的具体代码,供大家参考,具体内容如下 一.客户端的创建 1.我们可以用Socket来创建客户端 /**   *@类名 Client   *@描述 TODO 客户端 1   *@版本 1.0   *@创建人 XuKang   *@创建时间 2020/9/24 16:18   **/ public class Client {     public static void main(String[] args) throws UnknownHostExc

随机推荐