Java实现简单的邮件发送功能

 更新时间:2022年07月29日 08:42:01   作者:兴奋の大公猴  
这篇文章主要为大家详细介绍了Java实现简单的邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java实现简单的邮件发送的具体代码,供大家参考,具体内容如下

要注意只有开启了POP3/SMTP才能收发邮件,首先要开启此功能

** qq邮箱的开启方式**

设置——》账户——》找到下图的的信息,并开启

网易163邮箱的开启方式

设置——》POP3/SMTP/IMAP

当开启了之后就可以收发邮件了

Java代码

package cn.itcast.travel.util;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

/**
 * 发邮件工具类
 */
public final class MailUtils {
    private static final String USER = ""; // 发件人称号,同邮箱地址
    private static final String PASSWORD = ""; // 如果是qq邮箱可以使户端授权码,或者登录密码

    /**
     *
     * @param to 收件人邮箱
     * @param text 邮件正文
     * @param title 标题
     */
    /* 发送验证信息的邮件 */
    public static boolean sendMail(String to, String text, String title){
        try {
            final Properties props = new Properties();
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.host", "smtp.qq.com");

            // 发件人的账号
            props.put("mail.user", USER);
            //发件人的密码
            props.put("mail.password", PASSWORD);

            // 构建授权信息,用于进行SMTP进行身份验证
            Authenticator authenticator = new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    // 用户名、密码
                    String userName = props.getProperty("mail.user");
                    String password = props.getProperty("mail.password");
                    return new PasswordAuthentication(userName, password);
                }
            };
            // 使用环境属性和授权信息,创建邮件会话
            Session mailSession = Session.getInstance(props, authenticator);
            // 创建邮件消息
            MimeMessage message = new MimeMessage(mailSession);
            // 设置发件人
            String username = props.getProperty("mail.user");
            InternetAddress form = new InternetAddress(username);
            message.setFrom(form);

            // 设置收件人
            InternetAddress toAddress = new InternetAddress(to);
            message.setRecipient(Message.RecipientType.TO, toAddress);

            // 设置邮件标题
            message.setSubject(title);

            // 设置邮件的内容体
            message.setContent(text, "text/html;charset=UTF-8");
            // 发送邮件
            Transport.send(message);
            return true;
        }catch (Exception e){
            e.printStackTrace();
        }
        return false;
    }

    public static void main(String[] args) throws Exception { // 做测试用
        MailUtils.sendMail("","测试邮件,无需回复!","测试邮件");
        System.out.println("发送成功");
    }


}

这里填写发件人的邮箱和授权码,如果是qq邮箱则使用qq密码即可

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java中Map的computeIfAbsent方法详解

    Java中Map的computeIfAbsent方法详解

    这篇文章主要介绍了Java的Map中computeIfAbsent方法详解,在jdk1.8中Map接口新增了一个computeIfAbsent方法,这是Map接口中的默认实现该方法是首先判断缓存Map中是否存在指定的key的值,如果不存在,会调用mappingFunction(key)计算key的value,需要的朋友可以参考下
    2023-11-11
  • springboot日志文件名称叫logback-spring.xml的原因解析

    springboot日志文件名称叫logback-spring.xml的原因解析

    这篇文章主要介绍了springboot日志文件名称为什么叫logback-spring.xml,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • java利用Ant脚本生成war包全过程

    java利用Ant脚本生成war包全过程

    这篇文章主要为大家详细介绍了java利用Ant脚本生成war包全过程,感兴趣的朋友可以参考一下
    2016-03-03
  • 使用maven方式创建springboot项目的方式

    使用maven方式创建springboot项目的方式

    使用Spring Initializr创建spring boot项目,因为外网问题导致很难成功,所以只能使用maven方式,这里介绍下使用maven方式创建springboot项目的方法,感兴趣的朋友一起看看吧
    2022-09-09
  • Java弱引用集合WeakHashMap总结

    Java弱引用集合WeakHashMap总结

    这篇文章主要介绍了Java弱引用集合WeakHashMap总结,WeakHashMap利用WeakReference的弱引用特性让用户在使用的过程中不会因为没有释放Map中的资源而导致内存泄露,WeakHashMap实现了Map接口,使用方式和其他的Map相同,需要的朋友可以参考下
    2023-09-09
  • log4j配置失效日志中打印Debug信息问题

    log4j配置失效日志中打印Debug信息问题

    这篇文章主要介绍了log4j配置失效日志中打印Debug信息问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java的List集合框架之ArrayList详解

    Java的List集合框架之ArrayList详解

    这篇文章主要介绍了Java的List集合框架之ArrayList详解,ArrayList默认容量为10(构造方法未指定初始容量为0),扩容是利用位运算(右移一位)和直接相加进行1.5倍扩容,需要的朋友可以参考下
    2023-11-11
  • Java 面向对象和封装全面梳理总结

    Java 面向对象和封装全面梳理总结

    面向对象乃是Java语言的核心,是程序设计的思想,在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问
    2021-10-10
  • Spring Boot Actuator执行器运行原理详解

    Spring Boot Actuator执行器运行原理详解

    这篇文章主要介绍了Spring Boot Actuator执行器运行原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java深入数据结构理解掌握抽象类与接口

    Java深入数据结构理解掌握抽象类与接口

    在类中没有包含足够的信息来描绘一个具体的对象,这样的类称为抽象类,接口是Java中最重要的概念之一,它可以被理解为一种特殊的类,不同的是接口的成员没有执行体,是由全局常量和公共的抽象方法所组成,本文给大家介绍Java抽象类和接口,感兴趣的朋友一起看看吧
    2022-05-05

最新评论