首页 > 其他分享 >发邮件的工具类

发邮件的工具类

时间:2024-02-28 14:45:26浏览次数:21  
标签:发邮件 String new props mail 工具 message 邮件

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("[email protected]","你好,这是一封测试邮件,无需回复。","测试邮件");
        System.out.println("发送成功");
    }

}

 

标签:发邮件,String,new,props,mail,工具,message,邮件
From: https://www.cnblogs.com/rongxiaoya/p/18040339

相关文章

  • Oracle-JPA扩展工具-原生SQL查询并返回自定义DTO
    Java-JPA原生SQL查询返回自定义DTO:importcom.tjgeo.njsosms.framework.repository.IBaseRepository;importcom.tjgeo.njsosms.risk.support.entity.Source;importorg.springframework.data.jpa.repository.Query;importjava.util.List;/***${Description}**@......
  • MBD工具链的云部署
    MBD工具链的云部署“云技术永远不会用于汽车开发“。说到云部署在汽车行业的应用,业界曾经认为云技术并不适合用在汽车行业的产品开发。知识产权保护、数据的安全、流程不够透明、迁移成本过高、IT部门的保守等种种现实问题成为了云技术应用在汽车开发上的阻碍。然而,随着电动车巨......
  • 32-异常捕获与抛出工具
    异常捕获与抛出工具即便Python程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。大多数的异常都不会被程序处理,都以错误信息的形式展现在这里:>>>10*(1/0)#0不能作为除数,触发异常Traceback(mostrecentcalllast):......
  • 基于自适应支持向量机的matlab建模与仿真,不使用matlab的SVM工具箱函数
    1.算法运行效果图预览 2.算法运行软件版本matlab2022a 3.算法理论概述        支持向量机是一种二分类模型,它的基本思想是在特征空间中寻找一个超平面,使得该超平面能够最大化地将两类样本分隔开。这个超平面由支持向量确定,支持向量是离超平面最近的样本点。自适......
  • 使用C#混淆加密大师保护你的代码 (代码混淆加壳工具,支持dll/exe混淆加密)
    C#混淆加密大师可以加密混淆C#编写的dll和exe程序(包括Winform程序,WPF程序,Unity游戏程序,控制台程序等),支持.NetFramework2.0~.NetFramework4.x,以及.NETCore2.0-.NET8。除了加密混淆代码功能,C#混淆加密大师还可以对EXE程序进行加壳,增加防篡改,注入垃圾数据等功能,可以......
  • ipmitool是很常见的物理机管理工具,这里分享一些ipmitool经常用到的一些命令
    ipmitool-Ilanplus-H$oob_ip-Uroot-P密码poweroff(硬关机,直接切断电源)ipmitool-Ilanplus-H$oob_ip-Uroot-P密码powersoft(软关机,即如同轻按一下开机按钮)ipmitool-Ilanplus-H$oob_ip-Uroot-P密码poweron(硬开机)ipmitool-Ilanplus-H$oo......
  • AI与人类联手,智能排序人类决策:RLHF标注工具打造协同标注新纪元,重塑AI训练体验
    AI与人类联手,智能排序人类决策:RLHF标注工具打造协同标注新纪元,重塑AI训练体验在大模型训练的RLHF阶段,需要人工对模型生成的多份数据进行标注排序,然而目前缺乏开源可用的RLHF标注平台。RLHF标注工具是一个简单易用的,可以在大模型进行RLHF(基于人类反馈的强化学习)标注排序的......
  • 免费集成-下载移动应用程序小工具
    推荐一个好用的、可以免费集成到网站的小部件。以下是具体内容。通过免费集成提高下载率。免费的网站小部件,您只需要简单的复制粘贴即可集成到您的网站中,以此来提高您的网站开发和下载效率。示例:为什么选择这个的插件:下载率提高了20%:我们的插件改变了游戏规则,带来了实实在......
  • crontab工具
    介绍:1、crontab是Linux和类Unix操作系统下的一个任务调度工具,用于周期性地执行指定的任务或命令。2、crontab存储在文件中,该文件位于/var/spool/cron/目录中。3、除了管理员,可以将命令添加到crontab中,通常用户需要执行周期性操作时使用。基本语法minutehourday-of-monthm......
  • Java代码混淆工具:ProGuard
    前言java代码可以反编译,因此有时候要保护自己的知识产权还得费点心思,一般来说有三个思路:将class文件加密,这个是最安全的,但也费事儿,因为要重写classloader来解密class文件,Lombok库就是使用的这种方式(lombok.launch.ShadowClassLoader)。使用花指令,使得class文件不能反编译(利用......