use of org.simplejavamail.api.email.Email in project LAPIS by cevo-public.
the class SmtpNotificationSystem method sendReport.
@Override
public void sendReport(SendableReport report) {
EmailPopulatingBuilder builder = EmailBuilder.startingBlank().from(senderAddress).withSubject(report.getSubject()).withPlainText(report.getEmailText());
for (String recipient : recipients) {
builder.to(recipient);
}
if (report.getPriority() == SendableReport.PriorityLevel.FATAL) {
builder.withHeader("X-Priority", 1);
}
Email email = builder.buildEmail();
mailer.sendMail(email);
}
use of org.simplejavamail.api.email.Email in project simple-java-mail by bbottema.
the class TestSmimeAttachments method testSMIMEMessageFromOutlookMsgWithNonMergingBehavior.
@Test
public void testSMIMEMessageFromOutlookMsgWithNonMergingBehavior() {
Email emailParsedFromMsg = EmailConverter.outlookMsgToEmailBuilder(new File(RESOURCE_FOLDER + "/SMIME (signed and clear text).msg")).notMergingSingleSMIMESignedAttachment().buildEmail();
EmailAssert.assertThat(emailParsedFromMsg).hasFromRecipient(new Recipient("Alessandro Gasparini", "donotreply@unknown-from-address.net", null));
EmailAssert.assertThat(emailParsedFromMsg).hasSubject("Invio messaggio SMIME (signed and clear text)");
EmailAssert.assertThat(emailParsedFromMsg).hasOnlyRecipients(new Recipient("a.gasparini@logicaldoc.com", "a.gasparini@logicaldoc.com", TO));
assertThat(emailParsedFromMsg.getHeaders()).isEmpty();
assertThat(normalizeNewlines(emailParsedFromMsg.getPlainText())).isNullOrEmpty();
assertThat(emailParsedFromMsg.getHTMLText()).isNullOrEmpty();
assertThat(emailParsedFromMsg.getEmbeddedImages()).isEmpty();
assertThat(emailParsedFromMsg.getAttachments()).hasSize(1);
assertThat(emailParsedFromMsg.getAttachments()).extracting("name").containsExactly("smime.p7m");
assertThat(emailParsedFromMsg.getDecryptedAttachments()).hasSize(1);
assertThat(emailParsedFromMsg.getDecryptedAttachments()).extracting("name").containsExactly("signed-email.eml");
final Email smimeSignedEmail = verifyNonnullOrEmpty(emailParsedFromMsg.getSmimeSignedEmail());
assertThat(smimeSignedEmail.getHeaders()).contains(new SimpleEntry<>("Message-ID", singletonList(SMIME_ATTACHMENT_MESSAGE_ID)));
assertThat(normalizeNewlines(smimeSignedEmail.getPlainText())).isEqualTo("Invio messaggio SMIME (signed and clear text)\n" + "\n" + "-- \n" + "Alessandro Gasparini\n" + "Chief Technology Officer\n" + "\n" + "\n" + "\n" + "\n" + "LOGICALDOC Srl\n" + "Via Aldo Moro interna 3\n" + "41012 Carpi / Modena\n" + "\n" + "P: +39 059 5970906\n" + " <https://www.logicaldoc.com> https://www.logicaldoc.com \n" + "\n" + " \n" + "\n");
assertThat(smimeSignedEmail.getHTMLText()).contains("<p class=MsoNormal><span lang=EN-US>Invio messaggio SMIME (signed and clear text)<o:p>");
assertThat(smimeSignedEmail.getEmbeddedImages()).isEmpty();
assertThat(smimeSignedEmail.getAttachments()).hasSize(1);
assertThat(smimeSignedEmail.getAttachments()).extracting("name").containsExactly("3 crucial benefits of Cloud computing.docx");
assertThat(smimeSignedEmail.getDecryptedAttachments()).hasSize(1);
assertThat(smimeSignedEmail.getDecryptedAttachments()).extracting("name").containsExactly("3 crucial benefits of Cloud computing.docx");
EmailAssert.assertThat(emailParsedFromMsg).hasOriginalSmimeDetails(OriginalSmimeDetailsImpl.builder().smimeMode(SmimeMode.SIGNED).smimeMime("application/pkcs7-mime").smimeType("signed-data").smimeName("smime.p7m").smimeSignedBy("shatzing5@outlook.com").smimeSignatureValid(true).build());
// verify msg that was sent with Outlook against eml that was received in Thunderbird
EmailPopulatingBuilder fromEmlBuilder = EmailConverter.emlToEmailBuilder(new File(RESOURCE_FOLDER + "/SMIME (signed and clear text).eml"));
Email emailExpectedFromEml = fromEmlBuilder.clearHeaders().clearReplyTo().clearBounceTo().from(verifyNonnullOrEmpty(fromEmlBuilder.getFromRecipient()).getName(), "donotreply@unknown-from-address.net").buildEmail();
Email emailWithCopiedMerginBehavior = EmailBuilder.ignoringDefaults().copying(emailParsedFromMsg).buildEmail();
EmailAssert.assertThat(emailWithCopiedMerginBehavior).isEqualTo(emailParsedFromMsg);
Email emailWithDefaultMerginBehavior = EmailBuilder.ignoringDefaults().copying(emailParsedFromMsg).clearSMIMESignedAttachmentMergingBehavior().buildEmail();
EmailAssert.assertThat(emailWithDefaultMerginBehavior).isEqualTo(emailExpectedFromEml);
}
use of org.simplejavamail.api.email.Email in project simple-java-mail by bbottema.
the class TestSmimeAttachments method testEmlSmimeHeaderRecognition.
@Test
public void testEmlSmimeHeaderRecognition() {
Email emailFromSignedEml = EmailConverter.emlToEmail(new File(RESOURCE_FOLDER + "/SMIME (signed and clear text).eml"));
EmailAssert.assertThat(emailFromSignedEml).hasOriginalSmimeDetails(OriginalSmimeDetailsImpl.builder().smimeMode(SmimeMode.SIGNED).smimeMime("application/pkcs7-mime").smimeType("signed-data").smimeName("smime.p7m").smimeSignedBy("shatzing5@outlook.com").smimeSignatureValid(true).build());
}
use of org.simplejavamail.api.email.Email in project simple-java-mail by bbottema.
the class TestSmimeSelfSigned method testEncryptedMessageEml_LegacySignedEnvelopedAttachment.
@Test
public void testEncryptedMessageEml_LegacySignedEnvelopedAttachment() throws Exception {
SecureTestDataHelper.runTestWithSecureTestData(passwords -> {
final Pkcs12Config pkcs12Config = Pkcs12Config.builder().pkcs12Store(RESOURCES + "/secure-testdata/secure-testdata/legacy-signed-enveloped-email/7acc30df-26dd-40b3-9d45-e31f681e755b.p12").storePassword(passwords.getProperty("legacy-signed-enveloped-email-zip-keystore-password")).keyAlias("sectigo limited id von ").keyPassword(passwords.getProperty("legacy-signed-enveloped-email-zip-key-password")).build();
Email emailParsedFromEml = EmailConverter.emlToEmail(new File(RESOURCES + "/secure-testdata/secure-testdata/legacy-signed-enveloped-email/email.eml"), pkcs12Config);
EmailAssert.assertThat(emailParsedFromEml).hasSubject("Ausarbeitung einer Schutzrechtsanmeldung : R.389390, Hr/Pv");
assertThat(normalizeNewlines(emailParsedFromEml.getPlainText())).doesNotStartWith("This is a multipart message in MIME format.");
assertThat(normalizeNewlines(emailParsedFromEml.getPlainText())).contains("Sehr geehrte Damen und Herren,");
assertThat(emailParsedFromEml.getEmbeddedImages()).isEmpty();
assertThat(emailParsedFromEml.getAttachments()).extracting("name").containsExactlyInAnyOrder("smime.p7m", "PDmembran_m_Stuelement_pdf_3373833.pdf", "IN_COVER_SHEET_3374652_pdf_3374715.pdf", "389390_Pruefung_des_Entwurfs_3493097.doc");
assertThat(emailParsedFromEml.getDecryptedAttachments()).extracting("name").containsExactlyInAnyOrder("signed-email.eml", "PDmembran_m_Stuelement_pdf_3373833.pdf", "IN_COVER_SHEET_3374652_pdf_3374715.pdf", "389390_Pruefung_des_Entwurfs_3493097.doc");
EmailAssert.assertThat(emailParsedFromEml).hasOriginalSmimeDetails(OriginalSmimeDetailsImpl.builder().smimeMode(SmimeMode.SIGNED_ENCRYPTED).smimeMime("application/pkcs7-mime").smimeType("enveloped-data").smimeName("smime.p7m").build());
});
}
use of org.simplejavamail.api.email.Email in project simple-java-mail by bbottema.
the class TestSmimeSelfSigned method testEncryptedMessageMsg.
@Test
public void testEncryptedMessageMsg() {
Email emailParsedFromMsg = EmailConverter.outlookMsgToEmail(new File(RESOURCES_MESSAGES + "/S_MIME test message encrypted.msg"), loadPkcs12KeyStore());
EmailAssert.assertThat(emailParsedFromMsg).hasFromRecipient(new Recipient("Benny Bottema", "benny@bennybottema.com", null));
EmailAssert.assertThat(emailParsedFromMsg).hasSubject("S/MIME test message encrypted");
EmailAssert.assertThat(emailParsedFromMsg).hasOnlyRecipients(new Recipient("Benny Bottema", "benny@bennybottema.com", TO));
assertThat(normalizeNewlines(emailParsedFromMsg.getPlainText())).isEqualTo("This is an encrypted message, with one embedded image and one dummy \n" + "attachment.\n" + "\n" + "For testing purposes in the Simple Java Mail project.\n" + "\n");
assertThat(emailParsedFromMsg.getEmbeddedImages()).hasSize(1);
AttachmentResource embeddedImg = emailParsedFromMsg.getEmbeddedImages().get(0);
assertThat(embeddedImg.getName()).isEqualTo("part1.EDA02623.55A510EE@bennybottema.com");
assertThat(embeddedImg.getDataSource().getName()).isEqualTo("module_architecture.png");
assertThat(embeddedImg.getDataSource().getContentType()).isEqualTo("image/png");
assertThat(emailParsedFromMsg.getHTMLText()).contains(format("<img src=\"cid:%s\"", embeddedImg.getName()));
assertThat(emailParsedFromMsg.getAttachments()).hasSize(2);
assertThat(emailParsedFromMsg.getAttachments()).extracting("name").containsExactlyInAnyOrder("smime.p7m", "03-07-2005 errata SharnErrata.pdf");
assertThat(emailParsedFromMsg.getDecryptedAttachments()).hasSize(2);
assertThat(emailParsedFromMsg.getDecryptedAttachments()).extracting("name").containsExactlyInAnyOrder("signed-email.eml", "03-07-2005 errata SharnErrata.pdf");
EmailAssert.assertThat(emailParsedFromMsg).hasOriginalSmimeDetails(OriginalSmimeDetailsImpl.builder().smimeMode(SmimeMode.ENCRYPTED).smimeMime("application/pkcs7-mime").smimeType("enveloped-data").smimeName("smime.p7m").build());
}
Aggregations