Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java 发送邮件添加附件_java发送邮件 发送带附件的邮件详解[通俗易懂]

java 发送邮件添加附件_java发送邮件 发送带附件的邮件详解[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-08-28 01:41:31
发布于 2022-08-28 01:41:31
2.5K0
举报

大家好,又见面了,我是你们的朋友全栈君。

import java.io.File;

import java.util.Date;

import javax.activation.DataHandler;

import javax.activation.FileDataSource;

import javax.mail.Address;

import javax.mail.BodyPart;

import javax.mail.Message;

import javax.mail.Multipart;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;

import javax.mail.internet.MimeUtility;

/**

* 发送带附件的邮件

*

* 需要导入mail.jar

*/

public class AttachmentMailSender {

public static boolean sendMail(MailSenderInfo mailInfo) {

// 判断是否需要身份认证

MyAuthenticator authenticator = null;

if (mailInfo.isValidate()) {

// 如果需要身份认证,则创建一个密码验证器

authenticator = new MyAuthenticator(mailInfo.getUserName(),

mailInfo.getPassword());

}

// 根据邮件发送的属性和密码验证器构造一个发送邮件的session

Session sendMailSession = Session.getInstance(mailInfo.getProperties(),

authenticator);

try {

// 根据session创建一个邮件消息

Message mailMessage = new MimeMessage(sendMailSession);

// 创建邮件发送者地址

Address from = new InternetAddress(mailInfo.getFromAddress());

// 设置邮件消息的发送者

mailMessage.setFrom(from);

// 创建邮件的接收者地址,并设置到邮件消息中

Address to = new InternetAddress(mailInfo.getToAddress());

mailMessage.setRecipient(Message.RecipientType.TO, to);

// 设置邮件消息的主题

mailMessage.setSubject(mailInfo.getSubject());

// 设置邮件消息发送的时间

mailMessage.setSentDate(new Date());

// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象

Multipart mainPart = new MimeMultipart();

// 创建一个包含HTML内容的MimeBodyPart

BodyPart html = new MimeBodyPart();

// 设置HTML内容

html.setContent(mailInfo.getContent(), “text/html; charset=GBK”);

mainPart.addBodyPart(html);

// 为邮件添加附件

String[] attachFileNames = mailInfo.getAttachFileNames();

if (attachFileNames != null && attachFileNames.length > 0) {

// 存放邮件附件的MimeBodyPart

MimeBodyPart attachment = null;

File file = null;

for (int i = 0; i < attachFileNames.length; i++) {

attachment = new MimeBodyPart();

// 根据附件文件创建文件数据源

file = new File(attachFileNames[i]);

FileDataSource fds = new FileDataSource(file);

attachment.setDataHandler(new DataHandler(fds));

// 为附件设置文件名

attachment.setFileName(MimeUtility.encodeWord(

file.getName(), “GBK”, null));

mainPart.addBodyPart(attachment);

}

}

// 将MiniMultipart对象设置为邮件内容

mailMessage.setContent(mainPart);

// 发送邮件

Transport.send(mailMessage);

return true;

} catch (Exception e) {

e.printStackTrace();

return false;

}

}

public static void main(String[] args) {

// 创建邮件信息

MailSenderInfo mailInfo = new MailSenderInfo();

mailInfo.setMailServerHost(“smtp.sina.com.cn”);

mailInfo.setMailServerPort(“25”);

mailInfo.setValidate(true);

mailInfo.setUserName(“***”);

mailInfo.setPassword(“***”);

mailInfo.setFromAddress(“[email protected]”);

mailInfo.setToAddress(“[email protected]”);

mailInfo.setSubject(“MyMail测试”);

mailInfo.setContent(“我的邮件测试\n\rMy test mail\n\r”);

String[] fileNames = new String[3];

fileNames[0] = “C:/temp/new.txt”;

fileNames[1] = “C:/temp/test.wav”;

fileNames[2] = “C:/temp/mary_photo.jpg”;

mailInfo.setAttachFileNames(fileNames);

AttachmentMailSender.sendMail(mailInfo);

}

}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/146644.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java发送邮件
参考了“菜鸟教程”和stack overflow 准备工作 将mail.jar和activation.jar加入classpath. 说明 发送方为163邮箱,需要设置host等参数。 接收方可以是其
xiaoxi666
2018/10/29
1.4K0
Java 发送邮件的几种方式[通俗易懂]
发送文件的项目地址(free):https://download.csdn.net/download/qq_36474549/10741073
全栈程序员站长
2022/08/28
1.4K0
java发送邮件-模板
今天写完了一个关于使用模板发送邮件的代码,作为例子保存着,希望以后用得着,也希望能够帮助到需要帮助的人 以163网易邮箱为例,使用java发送邮件,发送以邮件时使用模板(.ftl文件转换为html)发送邮件内容,并附带上附件,可抄送给多个人。项目的结构目录如下
全栈程序员站长
2022/08/28
1.8K0
java发送邮件-模板
Java常用工具类之发送邮件
package com.csice.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingE
二十三年蝉
2018/02/28
1.5K0
java邮件开发
(重点)SMTP:发送邮件的协议。Simple Message Transfer Protocal。默认端口:25
HUC思梦
2020/09/03
1.7K0
java邮件开发
邮件实现详解(四)------JavaMail 发送(带图片和附件)和接收邮件
该文章介绍了如何通过JavaMailSender发送邮件,并附带上图片和附件。同时,介绍了MailReceiver实现接收邮件。
IT可乐
2018/01/04
3.5K0
邮件实现详解(四)------JavaMail 发送(带图片和附件)和接收邮件
java实现发送邮件工具[通俗易懂]
java实现发送邮件的功能:首先需要导入mail.jar; 然后需要写发送方法: 1、邮箱发送封装工具类:
全栈程序员站长
2022/08/28
6210
java实现发送邮件工具[通俗易懂]
Java发送邮件工具类
这是从根据从码云上找到的一个邮件发送开源项目进行了一定的修改后 这里用的是Spring Boot项目进行的测试 项目结构: pom文件需要引入以下三个jar包: <dependency
二十三年蝉
2018/04/10
2.9K0
Java发送邮件工具类
【Java】邮件Demo(SSL加密传输)
温馨提示:本文最后更新于2021-11-18,若文件或内容有错误或已失效,请在下方留言。
NorthS
2023/03/21
7640
邮件发送,附件太大怎么办 → 那就用分卷压缩吧
  需要注意的是,不同的邮箱的发件箱的端口会有不同,另外发件箱也可能是授权码而不是发件箱登陆密码,需要大家结合具体的邮箱服务器来设置
青石路
2023/10/16
4410
邮件发送,附件太大怎么办 → 那就用分卷压缩吧
带附件/密送/抄送的 javaMail 邮件发送 -- java_demo(两种实现方式)
javaMail 的邮件发送包括了抄送(CC),密送(BCC)采用springBoot
allsmallpig
2021/02/25
1.6K0
使用 JavaMail 实现邮件发送与收取
因为上一篇已经实现了James的配置,那接下来就是利用javaMail实现邮件的发送和收取。
林老师带你学编程
2022/11/30
1.1K0
Java发送邮件(含附件)
前几天写了一个Java发送邮件的帮助类i,可以发送QQ和163的邮箱,也可以发送附件,写个一个主要的方法,其他的可以自己封装。代码如下:
付威
2020/01/21
1.6K0
JavaMail 邮件发送,有意思的附件名乱码 → 客户端正常,web端乱码
  基于 JavaMail 1.5.5 ,实现了邮件发送功能,也对接了一些客户,没出现什么问题
青石路
2023/03/09
2.8K0
JavaMail 邮件发送,有意思的附件名乱码 → 客户端正常,web端乱码
java 发邮件 代码
​1. MailSenderInfo package org.fh.util.mail; /** * 说明:发送邮件需要使用的基本信息 * 作者:FH Admin * fhadmin.org */ import java.util.Properties; public class MailSenderInfo { // 发送邮件的服务器的IP和端口 private String mailServerHost; private Stri
FHAdmin
2021/06/23
1.9K0
java中使用自己的邮箱进行多人邮件发送
email.properties文件如下: host=smtp.qq.com //这是qq邮箱,如果是其他邮箱 服务要配置成相应的host user=自己邮箱名 pwd=邮箱密码 subject=主题 1:167359230@qq.com //发送人 2:17655858721@qq.com import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream;
用户5166556
2019/04/16
1K0
Java定时发送邮件
刚开始计划指定几个同事轮流发送,业务只要不被攻击一般是没有问题的。但是想一想休息日还要处理工作上的事情(非紧急的)就不爽,近几年一直在做前端的事情,后台碰的少,毕竟也接触过,所以决定搞一个定时发送邮件的程序,遂上网查找资料。
Jack Chen
2019/09/23
2.1K0
Java定时发送邮件
Java-工具类之发送邮件
代码已托管到 https://github.com/yangshangwei/commonUtils
小小工匠
2021/08/17
1.7K0
Java Mail---SMTP协议-Java发邮件(带附件)演示过程
邮件客户端的主要任务是向邮件服务器发送邮件,以及接收来自邮件服务器的邮件。 Sun公司制定了一套API,它封装了邮件通信的各种协议。为Java开发者提供了收发电子邮件的公共接口。
谙忆
2021/01/21
2.3K0
Java Mail---SMTP协议-Java发邮件(带附件)演示过程
java之jmail实现邮件发送
https://zhidao.baidu.com/question/1431992442917304139.html
周杰伦本人
2023/10/12
2850
java之jmail实现邮件发送
相关推荐
Java发送邮件
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档