< prev index next >

email/src/main/java/org/openjdk/skara/email/Email.java

Print this page
*** 85,19 ***
          var redundantTimeZonePatternMatcher = redundantTimeZonePattern.matcher(unparsedDate);
          if (redundantTimeZonePatternMatcher.matches()) {
              unparsedDate = redundantTimeZonePatternMatcher.group(1);
          }
          var date = ZonedDateTime.parse(unparsedDate, DateTimeFormatter.RFC_1123_DATE_TIME);
!         var subject = message.headers.get("Subject");
!         var author = EmailAddress.parse(message.headers.get("From"));
          var sender = author;
          if (message.headers.containsKey("Sender")) {
!             sender = EmailAddress.parse(message.headers.get("Sender"));
          }
          List<EmailAddress> recipients;
          if (message.headers.containsKey("To")) {
              recipients = Arrays.stream(message.headers.get("To").split(","))
                                 .map(EmailAddress::parse)
                                 .collect(Collectors.toList());
          } else {
              recipients = List.of();
          }
--- 85,20 ---
          var redundantTimeZonePatternMatcher = redundantTimeZonePattern.matcher(unparsedDate);
          if (redundantTimeZonePatternMatcher.matches()) {
              unparsedDate = redundantTimeZonePatternMatcher.group(1);
          }
          var date = ZonedDateTime.parse(unparsedDate, DateTimeFormatter.RFC_1123_DATE_TIME);
!         var subject = MimeText.decode(message.headers.get("Subject"));
!         var author = EmailAddress.parse(MimeText.decode(message.headers.get("From")));
          var sender = author;
          if (message.headers.containsKey("Sender")) {
!             sender = EmailAddress.parse(MimeText.decode(message.headers.get("Sender")));
          }
          List<EmailAddress> recipients;
          if (message.headers.containsKey("To")) {
              recipients = Arrays.stream(message.headers.get("To").split(","))
+                                .map(MimeText::decode)
                                 .map(EmailAddress::parse)
                                 .collect(Collectors.toList());
          } else {
              recipients = List.of();
          }

*** 108,13 ***
                                               .filter(entry -> !entry.getKey().equalsIgnoreCase("Date"))
                                               .filter(entry -> !entry.getKey().equalsIgnoreCase("Subject"))
                                               .filter(entry -> !entry.getKey().equalsIgnoreCase("From"))
                                               .filter(entry -> !entry.getKey().equalsIgnoreCase("Sender"))
                                               .filter(entry -> !entry.getKey().equalsIgnoreCase("To"))
!                                              .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
  
!         return new Email(id, date, recipients, author, sender, subject, message.body, filteredHeaders);
      }
  
      public static EmailBuilder create(EmailAddress author, String subject, String body) {
          return new EmailBuilder(author, subject, body);
      }
--- 109,14 ---
                                               .filter(entry -> !entry.getKey().equalsIgnoreCase("Date"))
                                               .filter(entry -> !entry.getKey().equalsIgnoreCase("Subject"))
                                               .filter(entry -> !entry.getKey().equalsIgnoreCase("From"))
                                               .filter(entry -> !entry.getKey().equalsIgnoreCase("Sender"))
                                               .filter(entry -> !entry.getKey().equalsIgnoreCase("To"))
!                                              .collect(Collectors.toMap(Map.Entry::getKey,
+                                                                        entry -> MimeText.decode(entry.getValue())));
  
!         return new Email(id, date, recipients, author, sender, subject, MimeText.decode(message.body), filteredHeaders);
      }
  
      public static EmailBuilder create(EmailAddress author, String subject, String body) {
          return new EmailBuilder(author, subject, body);
      }
< prev index next >