首页 > 编程语言 >java 发送qq 纯文字邮件

java 发送qq 纯文字邮件

时间:2023-06-12 15:23:51浏览次数:41  
标签:qq java String 纯文字 mail import msg new email

package org.zhiyi.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.Properties;
import java.util.regex.Pattern;

@Component
public class Email {

    @Value("${email.stmp}")
    String stmp;
    @Value("${email.account}")
    String username;
    @Value("${email.pwd}")
    String password;

    Session session;

    private void createSession() {
        Properties prop = new Properties();
        prop.setProperty("mail.host","smtp.qq.com");
        prop.setProperty("mail.transport.protocol","smtp");
        prop.setProperty("mail.smtp.auth","true");

        session = Session.getInstance(prop, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });

        session.setDebug(true);

    }
//发送邮件
    public void send(String recipient, String subject, String content) throws MessagingException {
        createSession();
        if(!emailFormat(recipient)){
            throw new RuntimeException("email format error!");
        }
        MimeMessage msg = new MimeMessage(session);
        msg.setFrom(new InternetAddress(username));
        msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipient));
        msg.setSubject(subject, "utf-8");

        MimeBodyPart body = new MimeBodyPart();
        body.setContent(content, "text/html;charset=utf-8");

        MimeMultipart mul = new MimeMultipart();
        mul.addBodyPart(body);

        msg.setContent(mul);

        Transport.send(msg);
    }
//邮件模板
    public String mesTemplate(String title, String body) {
        StringBuilder sb = new StringBuilder();
        sb.append("<h1>" + title + "</h1>");
        sb.append("<div>" + body + "</div>");
        return sb.toString();
    }
//验证邮箱格式
    final static Pattern partern = Pattern.compile("[a-zA-Z0-9]+[\\.]{0,1}[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z]+");
    public static boolean emailFormat(String email){
        return partern.matcher(email).matches();
    }

}

 

Email email = new Email(); 
String code = "1234";
email.send("[email protected]", "验证码", email.mesTemplate("验证码", "您的验证码为<h2>" + code + "</h2>,验证码有效期为五分钟!"));

 

标签:qq,java,String,纯文字,mail,import,msg,new,email
From: https://www.cnblogs.com/laremehpe/p/17475115.html

相关文章

  • Java Agent入门教程
    一、核心逻辑创建一个新的项目(or子module),然后我们新建一个SimpleAgent类:packagecom.raorao.text;importjava.lang.instrument.Instrumentation;/***@Description:启动类*@Author:cxw*@Date:2023/6/1214:18*@Version:1.0**/publicclassM......
  • Java 线程池简单使用
    privatefinalThreadPoolExecutorhandleExecutor=newThreadPoolExecutor(3,5,5000L,TimeUnit.MILLISECONDS,newLinkedBlockingQueue<>(),newThreadFactoryBuilder().setNameFormat("MsgCenterHandle-%d").build());......
  • [转]POI 解析excel报错 java.lang.NoClassDefFoundError: org/apache/poi/ss/usermode
    前几天做了一个excel上传导入功能,为了通用想同步支持xls和xlsx格式。代码编写期并没有报错,所需要的类也都有。可是应用启动完测式功能的时候报了这么一个错Causedby:java.lang.NoClassDefFoundError:org/apache/poi/ss/usermodel/Date1904Support这是为什么呢?我第一感觉是jar......
  • Java 容器都有哪些?
    Java提供了多种容器类,用于存储和操作一组对象。以下是一些常见的Java容器:List(列表):按照插入顺序维护元素的有序集合。常见的实现类有ArrayList、LinkedList、Vector等。Set(集合):存储不重复元素的无序集合。常见的实现类有HashSet、TreeSet、LinkedHashSet等。Queue(队列):按照特定规则处......
  • 【课设】JavaWeb
    课程设计 论文题目 校园o2o小卖铺(商家端) 云平台网址(管理端):150.158.50.130摘   要在高校中,学生对于小卖铺有着强烈的需求,学生希望在网络上便可以实现商品的购买,商家希望通过网络推广自己的商店。特别是在校园存在疫情的情况下,学生更加愿意通过网络对小卖铺下单,这......
  • JavaStream LIst转map
    publicstaticvoidmain(String[]args){List<TarKoc>tarKocs=newArrayList<>();tarKocs.add(newTarKoc().setId(1).setKName("aaa"));tarKocs.add(newTarKoc().setId(2).setKName("bb"));t......
  • Java XML教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介XML是一种简单的基于文本的语言,旨在以纯文本格式存储和传输数据。它代表可扩展标记语言。JavaXML入门教程-从基本到高级概念的简单步骤了解JavaXML,其中包括概述,JavaXML解析器,DOM解析器,解析XML文档,查询XML文档,创建XML文档,修改XML文档,SAX解析器,JDOMXMLParser,StAXP......
  • 如何高质量完成java爬虫
    Java爬虫是通过Java语言编写的网络爬虫程序,用于自动化地浏览和抓取互联网上的数据,并将数据进行处理和保存。为了编写高效且不容易被检测出来的Java爬虫,通常需要掌握Java语言以及与之相关的库和框架,如Jsoup、HttpClient、Selenium等。那么如何快速完成爬虫项目?具体有哪些流程呢?......
  • Java:使用poi操作docx的word文档
    packagecom.aomen.java;importorg.apache.poi.openxml4j.exceptions.InvalidFormatException;importorg.apache.poi.util.Units;importorg.apache.poi.xwpf.usermodel.*;importorg.apache.xmlbeans.XmlCursor;importorg.openxmlformats.schemas.wordprocessingml.......
  • 学好Java爬虫需要什么技巧
    Java爬虫是一种利用Java编程语言编写的网络爬虫程序,它可以自动化地浏览和抓取互联网上的数据,并将数据进行处理和保存。Java爬虫通常使用HTTP协议模拟浏览器请求来获取网页内容,并通过解析HTML网页标签和属性等信息来提取有用的数据。Java爬虫也需要应对反爬虫机制,如IP封禁、验证码......