6

添付ファイルを送信すると、メールに本文メッセージ (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");
4

2 に答える 2

9

以下を使用する必要があります。

         // 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
于 2013-01-27T12:47:55.780 に答える
2

これを行うには、2 つの部分に分ける必要があります。

        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);
于 2016-07-25T04:55:27.650 に答える