Javamail 附加多个文件

2024-01-02

以下代码也使用 javamail api 通过 gmail smtp 服务器发送邮件和附件。

    public void doSendGmail(){
    from = txtFrom.getText();
    password= new String(txtPassword.getPassword());
    to = txtTo.getText();
    cc = txtCC.getText();
    bcc = txtBCC.getText();
    subject = txtSubject.getText();
    message_body = jtaMessage.getText();

    Properties props = new Properties();
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");

    Session session = Session.getInstance(props,null);

    try {
        //message definition
        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
        if(!cc.equals("")){
            message.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc));
        }
        if(!bcc.equals("")){
            message.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(bcc));
        }
        message.setSubject(subject);
        if(!filename.equals("")){// if a file has been attached...
            BodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setText(message_body);// actual message
            Multipart multipart = new MimeMultipart();// create multipart message

            // add the text message to the multipart
            multipart.addBodyPart(messageBodyPart);

            // attachment part
            messageBodyPart = new MimeBodyPart();
            String attachment = fileAbsolutePath;
            DataSource source = new FileDataSource(attachment);
            messageBodyPart.setDataHandler(new DataHandler(source));
            messageBodyPart.setFileName(filename);
            multipart.addBodyPart(messageBodyPart);//add the attachment to the multipart message
            // combine text and attachment
            message.setContent(multipart);
            // send the complete message
            Transport.send(message, from, password);
        }
        else{// if no file has been attached
            message.setText(message_body);
            Transport.send(message, from, password);
        }

        JOptionPane.showMessageDialog(this, "Message Sent!","Sent",JOptionPane.INFORMATION_MESSAGE);

    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, e.toString());
    }
}

此代码一次只能附加和发送一个文件。如何让它附加多个文件并将它们作为一封电子邮件发送?

使用 JFileChooser 附加文​​件,如下所示:

public void doAttachFile(){
    try {
        JFileChooser chooser = new JFileChooser();
        chooser.showOpenDialog(null);
        File file = chooser.getSelectedFile();
        filename = file.getName();// get name of selected file
        lblFileName.setText(filename);// display name of selected file
        fileAbsolutePath= file.getAbsolutePath();
        System.out.println("File name: "+filename+"\n"+"Absolute path: "+fileAbsolutePath);

    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, "No file was attached");
    }
}

在附件部分周围使用“for”循环。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javamail 附加多个文件 的相关文章

  • 是否可以使用Javamail发送邮件而无需身份验证?

    我一直在复制这段代码http www tutorialspoint com java java sending email htm http www tutorialspoint com java java sending email ht
  • JavaMail:如何获取与时间戳比较的新邮件

    我试图在某个时间戳之后获取消息 我的编码方式是由本网站的另一位程序员建议的 GregorianCalendar date new GregorianCalendar SearchTerm newer new ReceivedDateTerm
  • 为什么JMS要通过Java Mail发送邮件

    场景一 在服务器中设置 JMS 队列 Java代码向Producer发送消息 创建一个 JMS Producer 当调用它时 应该接收电子邮件数据 主题 正文 收件人 抄送等 并将其发布到步骤 1 中设置的队列 创建一个 JMS Consu
  • 模拟 javax.mail.Transport

    无需创建另一个我可以注入的类 是否可以嘲笑javax mail Transport所以我可以做一些模拟测试Transport send Java EE 7 上的方法 由于 Dumbster 没有当前可用的 Maven Central 工件
  • 设置 MimeMessage 的内容类型?

    我对哑剧消息的内容类型有一个困惑 假设我有一条哑剧消息 这是一条多部分消息 正文部分如下 Mime 正文部分包含纯文本 html 文本 如中的一些字母 正文加粗 第二个哑剧身体部分包含附件 第三个哑剧正文部分包含一张内联图像 通过 cid
  • org.springframework.mail 的哪个工件?

    我想使用 spring 支持来发送邮件 我的项目是用 maven 2 构建的 我使用 spring core 2 5 5 我尝试在 maven 中央存储库中查找要包含在我的 pom xml 中的工件 我发现的唯一一个是弹簧支撑 http m
  • 如何将业务逻辑和电子邮件发送功能分开?

    我的 Java Web 应用程序有一个要求 需要在某些条件下发送电子邮件警报 为此 我使用了 javax mail api 并且发送电子邮件效果很好 但问题是程序执行要等到发送电子邮件的方法执行完毕为止 由于在各个点要发送数百封电子邮件 这
  • Java Mail MimeUtility 编码文本 UnsupportedEncodingException BASE64

    作为我的一部分J2EE应用程序的电子邮件服务 我编码成BASE64 body MimeUtility encodeText orig mail body UTF 8 BASE64 但在某些情况下它会抛出异常 java io Unsuppor
  • Javamail 无法收到所有邮件

    我试图获取我的 Gmail 的所有邮件 但只能获取 250 封 根据https javaee github io javamail FAQ gmailsettings https javaee github io javamail FAQ
  • JavaMail 与 Oauth 和 Office365

    我正在用 Java 构建一个简单的命令行应用程序 它可以登录我的电子邮件箱 IMAP 并下载所有附件 我使用了基本身份验证 但 Microsoft 正在禁用它 因此我尝试将我的应用程序转换为使用 OAuth 在阅读了不同的 OAuth 流程
  • Android studio中的文件路径

    我正在尝试发送带有附件的电子邮件 除了附加文件之外 一切正常 调用方法时 它显示 java io FileNotFoundException 虽然我手动插入精确路径 文件 存储 模拟 0 Android data com example a
  • 通过 JavaMail 发送到 Gmail 时的 TLS 问题

    事实证明 JavaMail 比我想象的要令人沮丧一些 我在网上查看了几个有关如何通过 Gmail 服务器 但不通过 SSL 发送简单 SMTP 电子邮件的示例 在尝试了几个不同的代码示例之后 当我调用时 我不断得出相同的示例异常transp
  • javax.mail.MessagingException:无法连接到 SMTP 主机:<主机名> 端口:25 响应:554

    我正在尝试使用 java mail api 发送邮件 我的 smtp 服务器是 ibm 服务器 我面临这个异常 javax mail MessagingException Could not connect to SMTP host
  • 在 Transport.send(message) 上获取 ParseException

    由于某种原因 当我在 MimeMessage 上调用 Transport send 时 出现 javax mail internet ParseException 以前 当它只是一封纯文本电子邮件时 这是有效的 但是当我将其更改为同时包含文
  • 读取电子邮件的文本文件转换为 Javamail MimeMessage

    我有一个电子邮件原始来源的文本文件 直接从 gmail 复制 如果您单击 查看原始文件 您就会看到它 我想读入该文件并将其转换为 MimeMessage 如果您好奇为什么 我设置了 JavaMaildir 并且需要用电子邮件填充它的收件箱以
  • Java Mail - 以字符串形式读取附件

    我开始使用 Java Mail 我有一些关于附件处理的问题 如果我们的内容是Multipart即有一个附件 在哪个索引处是实际的附件 在哪个索引处我们可以找到邮件内容 我只想处理附件 这是正确的做法吗 如果我想将给定的附件转换为字符串 只需
  • 电子邮件客户端库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个在接收端包装 javamail API 的库 就像公共电子邮件 http commons
  • Apache James 学习资源 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 该计划是创建一个列表阿帕奇 詹姆斯 http james apache org学习资源 涉及从设置到使用
  • Exchange 服务器不接受 javax.mail API 提供的用户名/密码

    我有一个可爱的小型 Java 客户端 可以发送签名的电子邮件 我们有一个需要用户名 密码身份验证才能发送消息的 Exchange 服务器 当我连接到交换服务器时 出现以下错误 avax mail AuthenticationFailedEx
  • 用 Java 解析 RFC 2822 电子邮件地址

    许多人不知道 电子邮件地址需要一个库来解析 简单的正则表达式 例如 还不够 电子邮件地址甚至可以包含评论 其中可以包含诸如 破坏简单的正则表达式 有一个Node js 库 https github com baudehlo node add

随机推荐

  • 我的第一个表值函数和游标

    我有这样的疑问 SELECT name lastname FROM contestant WHERE name John AND lastname Smith 我从上面的查询中得到了几个结果 我需要将它们用于以下查询 SELECT name
  • 未找到快速命令

    由于某种原因 在我的机器上全局安装 Express 后npm install g express if I cd进入目录并尝试运行express 我收到以下错误 express command not found 即使我运行它sudo我仍然
  • AssertionError:将使用不支持的标签('cp310','cp310','linux_x86_64')构建轮子

    当我尝试使用 Python 3 10 安装 numpy 时 我收到此消息 如何解决这个问题 Copying numpy egg info to build bdist linux x86 64 wheel numpy 1 19 3 py3
  • 使用 Node.js、流和 Promise 下载文件

    这是我的代码片段 var processListing function directoryItems console log foreach var itemsToDownload directoryItems forEach funct
  • 骨干.js https

    整个早上都在谷歌上搜索 但找不到答案 官方文档中甚至没有 https 或 ssl 字样 目前我有类似的东西 var A backbone Collection extend url a 有没有办法让 url https 而不使用绝对路径 我
  • 如何避免 uitextfield 旁边的点

    当文本大于 uitextfield 的宽度时 是否可以删除 uitextfield 旁边显示的点 如果您调用以下代码使键盘可见 这是可能的 self yourTextField 成为FirstResponder 然后较大的文本从左侧被剪切
  • Airflow - 获取 dag run 的开始时间

    是否有可能获得气流中 dag 的实际开始时间 我所说的开始时间是指 dag 的第一个任务开始运行的确切时间 我知道我可以使用宏来获取执行日期 如果使用trigger dag运行作业 这就是我所说的开始时间 但如果作业按每日计划运行 那么 e
  • 无法在中心显示材质 ui 小吃栏

    我有一个材料 ui 小吃栏 我需要将其显示在屏幕中间 下面是我试图传递的属性 使其显示在屏幕中心 但显示在屏幕顶部 anchorOrigin vertical center horizontal center https codesandb
  • 出现错误:/bin/sh scriptcs:找不到命令

    我正在使用 Visual Studio Code for Mac 运行扩展 CodeRunner 我有一个简单的程序 using System namespace HelloWorldApplication class HelloWorld
  • “X-UA-兼容”内容=“IE = 9; IE = 8; IE = 7; IE = EDGE”

    这句话究竟是什么意思呢 一些例子使用 分离 IE 的版本 而有些则使用 哪个是对的 命令IE 9 IE 8 IE 7 IE EDGE有一定的重要性 我想知道这一点 Edit 我在用 如果您支持 IE 对于 Internet Explorer
  • 获取 Jasper Reports 表中第一行和最后一行的第一个字母

    I am using JasperSoft Studio in Eclipse to generate a signup sheet for a church The page header has the label of what la
  • 从 python 列表中删除 '\n' 列表项

    我有一个列表 其中包含一个项目 n 我想删除它 但是 删除命令不起作用 谁能告诉我我做错了什么 def main list1 ng g ng g g n n ns ns s n nd d nd nd d d d n n print list
  • 提交时将表单数据发送到 Javascript

    好吧 我觉得这应该很简单 所以要么我完全错过了这里和我读过的其他网站上的问题的要点 要么没有在相同的上下文中被问到 我有一个非常简单的表单元素 如下
  • 创建 XSS 易受攻击的网页

    我想创建一个 XSS 易受攻击的网页 该网页执行在输入框中输入的脚本 我在这里编写了这段代码 但每当我输入脚本时 什么也没有发生 p You wrote p
  • 使用 matplotlib 和 seaborn 创建圆形密度图

    我正在尝试创建下面两个图像的组合 密度图 https i stack imgur com kV09a png 圆形条形图 https i stack imgur com tc7eG png 基本上我想要密度图的设计 但围绕一个圆圈而不是正常
  • Android:模拟器出厂数据重置菜单选项不起作用

    我正在尝试测试我自己创建的新 Android 系统级应用程序 该应用程序在执行设备出厂重置后捕获各种系统事件挂钩 通过 Android Studio AVD Manager 我创建了多个模拟 Android TV 设备 包括 Oreo 8
  • 数据框中每个唯一组合的频率

    在数据集中 N 6000 我想分析 15 个虚拟 变量组合出现的频率 ID Var1 Var2 Var3 Var15 1 1 0 0 1 2 0 1 1 1 3 1 0 0 0 6000 1 0 0 0 对于这个例子 我希望看到的是组合 1
  • 当使用字符串时,C++ 程序会出现运行时错误

    include
  • 如何运行 Visual Studio (2017) 安装程序?

    一旦你知道答案 它可能真的很明显 但我无法在任何地方找到它 我不是在谈论making安装程序 我指的是运行安装程序 让我可以修改安装的 Visual Studio 2017 的哪些功能 主屏幕如下所示 我需要的屏幕是这个 在 Visual
  • Javamail 附加多个文件

    以下代码也使用 javamail api 通过 gmail smtp 服务器发送邮件和附件 public void doSendGmail from txtFrom getText password new String txtPasswo