java发送邮件带附件

article/2025/9/14 4:09:43

一、 开启SMTP服务

1.基本都在邮箱设置里,开启后会获得神秘代码,后面有用。
2.记得添加依赖,或者自己添加jar包。

<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.5.0-b01</version>
</dependency>

二、发送新浪邮箱带附件

public static void sinaMail() throws GeneralSecurityException {// 收件人电子邮箱String to = "XXXXXXXXX@qq.com";    //也可以的// 发件人电子邮箱String from = "XXXXXXXXX@sina.com";// 获取系统属性Properties properties = new Properties();//发送邮件协议properties.setProperty("mail.transport.protocol", "SMTP");// 设置邮件服务器properties.setProperty("mail.smtp.host", "smtp.sina.com");// 设置邮件服务器是否需要登录认证properties.setProperty("mail.smtp.auth", "true");// 验证账号及密码,密码需要是第三方授权码Authenticator auth = new Authenticator() {public PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication("XXXXXXXXX@sina.com", "ed0dc82fcd7cea3f");}};// 获取默认session对象Session session = Session.getInstance(properties,auth);try{// 创建默认的 MimeMessage 对象MimeMessage message = new MimeMessage(session);// Set From: 头部头字段message.setFrom(new InternetAddress(from));// Set To: 邮件接收人message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));// Set Subject: 主题名称message.setSubject("This is the Subject Line!");// 创建消息部分BodyPart messageBodyPart = new MimeBodyPart();// 消息内容messageBodyPart.setText("TEST/TEST");// 创建多重消息Multipart multipart = new MimeMultipart();// 设置文本消息部分multipart.addBodyPart(messageBodyPart);// 附件部分messageBodyPart = new MimeBodyPart();//把文件,添加到附件1中//数据源DataSource source = new FileDataSource(new File("D:/1.pptx"));//设置第一个附件的数据messageBodyPart.setDataHandler(new DataHandler(source));//设置附件的文件名messageBodyPart.setFileName("1.pptx");multipart.addBodyPart(messageBodyPart);message.setContent(multipart);// 发送消息Transport.send(message);System.out.println("Sent message successfully....");}catch (MessagingException mex) {mex.printStackTrace();}
}

三、发送QQ邮箱带附件

public static void qqMail() throws GeneralSecurityException {// 收件人电子邮箱String to = "XXXXXXXXX@qq.com";    //也可以的// 发件人电子邮箱String from = "XXXXXXXXX@qq.com";// 获取系统属性Properties properties = new Properties();//发送邮件协议properties.setProperty("mail.transport.protocol", "SMTP");// 设置邮件服务器properties.setProperty("mail.host", "smtp.qq.com");// 设置邮件服务器端口properties.setProperty("mail.smtp.socketFactory.port", "587");//如果是阿里云服务器properties.put("mail.smtp.port", "587");// 设置邮件服务器是否需要登录认证properties.setProperty("mail.smtp.auth", "true");// 验证账号及密码,密码需要是第三方授权码Authenticator auth = new Authenticator() {public PasswordAuthentication getPasswordAuthentication(){return new PasswordAuthentication("XXXXXXXXX@qq.com", "urzgdvdyflesbjhh");}};// 获取默认session对象Session session = Session.getInstance(properties,auth);try{// 创建默认的 MimeMessage 对象MimeMessage message = new MimeMessage(session);// Set From: 头部头字段message.setFrom(new InternetAddress(from));// Set To: 邮件接收人message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));// Set Subject: 主题名称message.setSubject("This is the Subject Line!");// 创建消息部分BodyPart messageBodyPart = new MimeBodyPart();// 消息内容messageBodyPart.setText("TEST/TEST");// 创建多重消息Multipart multipart = new MimeMultipart();// 设置文本消息部分multipart.addBodyPart(messageBodyPart);// 附件部分messageBodyPart = new MimeBodyPart();//把文件,添加到附件1中//数据源DataSource source = new FileDataSource(new File("D:/1.pptx"));//设置第一个附件的数据messageBodyPart.setDataHandler(new DataHandler(source));//设置附件的文件名messageBodyPart.setFileName("1.pptx");multipart.addBodyPart(messageBodyPart);message.setContent(multipart);// 发送消息Transport.send(message);System.out.println("Sent message successfully....");}catch (MessagingException mex) {mex.printStackTrace();}
}

四、效果

在这里插入图片描述

五、补充

1.邮件内容换行

// 设置文本消息部分
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart,"text/html;charset=UTF-8");

用下面这个换行

<br>

http://chatgpt.dhexx.cn/article/YSKF2amm.shtml

相关文章

java 邮件模板

邮件发送代码可参照 java 发送邮件 1.情形 邮件发送代码可参照上述&#xff0c;本例只说明如果读取模板文件。公司定义模板较为复杂的情况&#xff0c;可采用此类发送方式 2. 模板 2.1 resource 建立模板 2.2 ftl 模板如下 <p>您好&#xff0c;${name}&#xff0c;您…

使用JAVA实现邮件发送功能

一、准备工作 小编今天以 QQ邮箱 进行演示操作。 想要使用代码操作邮箱发送邮件&#xff0c;需要在邮箱设置中申请开通 POP3/SMTP 服务。 接下来跟着小编的图文一步一步的操作开通吧&#xff01; 1.1 登录网页QQ邮箱&#xff0c;点击页面顶部设置按钮。 1.2 点击后会打开邮箱…

java发送qq邮件

1.登录qq邮箱 1&#xff09;点击设置 2&#xff09;点击账户 3&#xff09;开启第一个服务&#xff0c;我已经开过了 4&#xff09;开启验证&#xff08;让你发送指定内容到某个号码&#xff09;&#xff0c;完成后点击我已发送&#xff0c;就会出现授权码&#xff0c;授权码很…

java实现邮件发送

一.第一步:导入两个jar包。 activation.jar 和 mail.jar, 一定要添加到构建路径(不然找不到包) 两个用于Java发送邮件的jar包-Java文档类资源-CSDN下载 二、创建邮箱工具类:Mail.java import java.util.*; import java.io.*; import javax.mail.*; import javax.m…

Java(81):Java发邮件简单示例

Java Email jar包下载地址&#xff1a;JavaMail API https://www.oracle.com/java/technologies/javamail.html JavaMail 右侧下载&#xff0c;选择jar包下载 API文档参考&#xff1a;JavaMail API documentation https://javaee.github.io/javamail/docs/api/ 或直接引用…

java发送qq邮件_「java发邮件」Java 通过SMTP实现发送QQ邮件 - seo实验室

java发邮件 在Eclipse中创建项目&#xff0c;并把javax.amil.jar和commons-email-1.5,jar复制到项目中 链接&#xff1a;https://pan.baidu.com/s/1sQjA1GEpKi6IJJRGHKxjeA 密码&#xff1a;4ene 添加步骤&#xff1a; 1.首先在项目下创建一个文件夹&#xff0c;保存我们的jar包…

Java发邮件配置-hutool+腾讯企业邮箱

1、技术选型 1.1、hutool工具 1.2、javax.mail 1.3、腾讯企业邮箱2、环境准备 2.1、pom <!--javax.mail--><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependen…

Java(83)Java发邮件简单工具类

1、Maven引用 <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api --><dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.6.2</version></dependency><…

java发邮件 动态切换当前发送人

最近项目需要实现一个发送邮件功能&#xff0c;踩了一些坑&#xff0c;最终实现了。 在此写一下心得 开始做的时候一塌糊涂&#xff0c;觉得挺难的&#xff0c;但是做完之后发现其实简单的一批&#xff0c;接下来我就来写一下实现流程。 1、准备好拿来发送邮件的账号&#xf…

Java 发邮件-带附件且正文html格式

入职新公司不久&#xff0c;接到一个给用户发邮件的需求&#xff0c;有两点需要说明的&#xff1a;1&#xff09;正文需要格式化&#xff1b;2&#xff09;需要带附件。 大概了解了一下需求&#xff0c;我马上开始思考&#xff0c;现有项目中是否有类似的接口可以支持&#xf…

java实现发送邮件

本文介绍下java实现邮件的发送&#xff0c;意在网站用户评论时能够及时通知站长和用户评论被回复后能够及时通知用户。 下文介绍下具体实现。 java实现 首先引入springboot的邮箱依赖 <dependency><groupId>org.springframework.boot</groupId><artif…

java邮件发送

一、JavaMail介绍 1、概述 JavaMail是利用现有的邮件账户发送邮件的工具&#xff0c;比如我在网易注册一个邮箱账户&#xff0c;通过JavaMail的操控&#xff0c;我可以不亲自登录网易邮箱&#xff0c;让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮…

使用Java实现邮件的发送

数年前&#xff0c;邮件的发送是经过人为的运输&#xff0c;从发件人---当地邮局---收件地邮局---收件人&#xff0c;付出的人力物力是非常大的。随着时代的进步&#xff0c;科技的发展&#xff0c;如今我们的生活中出现更高级发送邮件的方式&#xff0c;最常用的就是从&#x…

Java发送邮件详解

目录 一、关于电子邮件 电子邮件 传输协议 SMTP协议 POP3协议 邮件收发原理 二、发送纯文本邮件 二、发送带图片和附件的邮件 一、关于电子邮件 电子邮件 要在网络上实现邮件功能&#xff0c;必须要有专门的邮件服务器。 这些邮件服务器类似于现实生活中的邮局&…

基于JavaMail的Java邮件发送:简单邮件发送

本文链接: https://blog.csdn.net/xietansheng/article/details/51673073 电子邮件的应用非常广泛&#xff0c;例如在某网站注册了一个账户&#xff0c;自动发送一封欢迎邮件&#xff0c;通过邮件找回密码&#xff0c;自动批量发送活动信息等。但这些应用不可能和我们自己平时…

js 实现计数器功能

1.运用 setInterval()定时器计算秒数 <!DOCTYPE html> <html><head><title>JS实现计数器</title><meta http-equiv"content-type" content"text/html; charsetgbk"><script src"https://cdn.bootcss.com/jqu…

element的formatter失效的解决方案

formatter传入数据失效 组件封装的时这样 使用方式还是和element的官方使用方式相同

html输入框只能输入文字,input文本框强制输入指定文字的方法以及IE11的兼容

背景:最近开发的韩国项目,在用户姓名输入框一栏中,要求只能输入韩文,通常用到onkeyup和onafterpaste两个事件来触发方法,并在方法中进行校验,但是在IE浏览器中,出现了一种情况,就是韩文单词拼写未完成的时候,会直接进行校验并显示,如下图实例所展示,并不是需要想要的…

jquery对表格行列的操作-jquery动态增加表格行或者列

jquery对表格的操作是老生常谈的问题。最近项目中用到了&#xff0c;今天在这里分享一下&#xff01; 效果大体如下&#xff1a; 分享一下代码吧&#xff01; html <div class"table-responsive" id"Bk_table" style"display:none;">&l…

动态改变Input和Textarea值Vue数据没有绑定的解决办法

背景&#xff1a; 我在循环里面的input框需要限制输入的值的类型&#xff0c;如果我绑定了change的方法的话 首先需要失去焦点才能生效&#xff0c;如果不失去焦点直接点击确定按钮是不能触发事件的 值还是原来的 &#xff0c;第二个如果层级多的话需要把索引什么的传过去用$se…