当前位置: 首页 > 知识库问答 >
问题:

发送附件时不显示正文消息

太叔经赋
2023-03-14

发送附件时,我看不到正文消息(message.setText(this.getEmailBody());)在电子邮件中。如果没有附件,电子邮件将显示正文消息。电子邮件被发送到gmail账户。你知道为什么会这样吗?

        MimeMessage message = new MimeMessage(session_m);    
        message.setFrom(new InternetAddress(this.getEmailSender()));
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(this.getEmailRecipient()));
        message.setSubject(this.getEmailSubject());
        message.setText(this.getEmailBody()); //This won't be displayed if set attachments

        Multipart multipart = new MimeMultipart();

        for(String file: getAttachmentNameList()){
            MimeBodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.attachFile(this.attachmentsDir.concat(file.trim()));
            multipart.addBodyPart(messageBodyPart);

            message.setContent(multipart);
        }


        Transport.send(message);
        System.out.println("Email has been sent");

共有2个答案

郁明诚
2023-03-14

要做到这一点,您需要分成两部分:

        Multipart multipart = new MimeMultipart();

        // content part
        BodyPart messageBodyPart = new MimeBodyPart();
        messageBodyPart.setText(content);
        messageBodyPart.setContent(content, "text/html");
        multipart.addBodyPart(messageBodyPart);

        BodyPart attachmentPart = new MimeBodyPart();
        DataSource source = new FileDataSource(file);
        attachmentPart.setDataHandler(new DataHandler(source));
        attachmentPart.setFileName(file.getName());
        multipart.addBodyPart(attachmentPart);
濮阳旺
2023-03-14

您需要使用以下选项:

         // Create the message part
        BodyPart messageBodyPart = new MimeBodyPart();
        // Fill the message
        messageBodyPart.setText(body);
        messageBodyPart.setContent(body, "text/html");

        Multipart multipart = new MimeMultipart();
        multipart.addBodyPart(messageBodyPart);
         //Add the bodypart for the attachment(s)
        // Send the complete message parts
        message.setContent(multipart); //message is of type - MimeMessage
 类似资料:
  • 当我尝试发送电子邮件意图时,无论我是否使用意图。ACTION\u发送或操作。发送并使用Sony Xperia Active电子邮件客户端,主题和收件人显示良好,但正文为空,只有客户端粘贴的标准注释除外。在我的三星Galaxy Note 2上,同样的代码也很有魅力。

  • 我有一个仪表板活动有3个片段,最初它是调用一个家庭片段,我想显示一个布局当我收到一个互联网的广播没有连接,但我的布局总是显示空指针异常...一开始互联网布局的可见性消失了。 当我设置我的可见性,然后它显示和重叠我的片段设计,但一旦设置它的可见性消失,然后想要显示它总是显示错误 为什么会发生这种情况 checknet.java dashboard.xml

  • 问题内容: 使用python发送电子邮件时如何添加文档附件?我收到了要发送的电子邮件(请忽略:我正在循环发送电子邮件,每5秒发送一次,仅用于测试目的,我希望每30分钟发送一次,只需将5更改为1800) 到目前为止,这是我的代码。我如何从计算机上附加文档? 问题答案: 这是对我有用的代码-使用python发送带有附件的电子邮件

  • 对于下面的方法有逻辑上的问题,也许有人可以帮我解决。当一个用户向另一个用户发送消息时,该消息显示在中,就像发送该消息的用户应该看到的那样,但另一个用户没有得到它/看到它。只有当您是发送第一条消息的人时,这些消息才会出现。 我希望这样做,使其他用户收到消息,即使他们没有回应它。中的语句不应该说明我要做什么吗?如果当前登录的用户是(receiver),那么他们也应该让消息出现在中,即使他们还没有响应它

  • 给出测试URL并运行文件后,它会显示错误消息,如“uncaughtexceptionjava.lang.NoClassDefFoundError:无法初始化类org.apache.jmeter.save.SaveService。有关详细信息,请参阅日志文件。” 已创建线程组已添加http采样器已添加listner 错误消息是“未捕获异常java.lang.NoClassDefFoundError:

  • 我有一个服务类,用 我想在启动服务时显示一条自定义消息,内容如下 有办法做到这一点吗?由于bean没有加载,我不能使用或类似的东西