/** * Converts array of {@link Address} to {@link EmailAddress}. * * @param addresses array of {@link Address}es to convert. * @return an array of {@link EmailAddress}. */ public static EmailAddress[] of(final Address... addresses) { if (addresses == null) { return EmailAddress.EMPTY_ARRAY; } if (addresses.length == 0) { return EmailAddress.EMPTY_ARRAY; } final EmailAddress[] res = new EmailAddress[addresses.length]; for (int i = 0; i < addresses.length; i++) { res[i] = EmailAddress.of(addresses[i]); } return res; }
/** * Sets FROM, REPLY-TO and recipients. * * @param emailWithData {@link Email} with data * @param msgToSet {@link MimeMessage} to set data into. * @throws MessagingException if there is a failure */ private void setPeople(final Email emailWithData, final MimeMessage msgToSet) throws MessagingException { msgToSet.setFrom(emailWithData.from().toInternetAddress()); msgToSet.setReplyTo(EmailAddress.convert(emailWithData.replyTo())); setRecipients(emailWithData, msgToSet); }
/** * @see #EmailAddress(String, String) */ public static EmailAddress of(final String personalName, final String email) { return new EmailAddress(personalName, email); }
@Test void testMailFromString() { EmailAddress mailAddress = EmailAddress.of(ADMIN_JODD_COM); assertNull(mailAddress.getPersonalName()); assertEquals(ADMIN_JODD_COM, mailAddress.getEmail()); assertEquals(ADMIN_JODD_COM, mailAddress.toString()); mailAddress = EmailAddress.of(JENNY_DOE_ADMIN_JODD_COM); assertEquals(JENNY_DOE, mailAddress.getPersonalName()); assertEquals(ADMIN_JODD_COM, mailAddress.getEmail()); assertEquals(JENNY_DOE_ADMIN_JODD_COM, mailAddress.toString()); mailAddress = EmailAddress.of(JENNY_DOE_SPACE, ADMIN_JODD_COM); assertEquals(JENNY_DOE_SPACE, mailAddress.getPersonalName()); assertEquals(ADMIN_JODD_COM, mailAddress.getEmail()); assertEquals("Jenny Doe <admin@jodd.com>", mailAddress.toString()); }
@Test void testMailFromInternetAddress() throws AddressException { final EmailAddress mailAddress = new RFC2822AddressParser().parseToEmailAddress(JENNY_DOE_ADMIN_JODD_COM); final EmailAddress mailAddress2 = EmailAddress.of(mailAddress.toInternetAddress()); assertEquals(JENNY_DOE, mailAddress2.getPersonalName()); assertEquals(ADMIN_JODD_COM, mailAddress2.getEmail()); }
/** * Convert from array of {@link EmailAddress} to array of {@link InternetAddress}. * * @param addresses {@link EmailMessage} * @return array of {@link InternetAddress}. Returns empty array if addresses was {@code null}. * @throws MessagingException if there are failures */ public static InternetAddress[] convert(final EmailAddress[] addresses) throws MessagingException { if (addresses == null) { return new InternetAddress[0]; } final int numRecipients = addresses.length; final InternetAddress[] address = new InternetAddress[numRecipients]; for (int i = 0; i < numRecipients; i++) { address[i] = addresses[i].toInternetAddress(); } return address; } }
@Test void testMailFromEmailAddress() { EmailAddress mailAddress = new RFC2822AddressParser().parseToEmailAddress(ADMIN_JODD_COM); assertNull(mailAddress.getPersonalName()); assertEquals(ADMIN_JODD_COM, mailAddress.getEmail()); mailAddress = new RFC2822AddressParser().parseToEmailAddress(JENNY_DOE_ADMIN_JODD_COM); assertEquals(JENNY_DOE, mailAddress.getPersonalName()); assertEquals(ADMIN_JODD_COM, mailAddress.getEmail()); final EmailAddress mailAddress2 = new RFC2822AddressParser().parseToEmailAddress(mailAddress.toString()); assertEquals(JENNY_DOE, mailAddress2.getPersonalName()); assertEquals(ADMIN_JODD_COM, mailAddress2.getEmail()); }
/** * Sets TO, CC and BCC in msgToSet with TO, CC and BCC from emailWithData. * * @param emailWithData {@link Email} with data * @param msgToSet {@link MimeMessage} to set data into. * @throws MessagingException if there is a failure. */ private void setRecipients(final Email emailWithData, final MimeMessage msgToSet) throws MessagingException { // TO final InternetAddress[] to = EmailAddress.convert(emailWithData.to()); if (to.length > 0) { msgToSet.setRecipients(RecipientType.TO, to); } // CC final InternetAddress[] cc = EmailAddress.convert(emailWithData.cc()); if (cc.length > 0) { msgToSet.setRecipients(RecipientType.CC, cc); } // BCC final InternetAddress[] bcc = EmailAddress.convert(emailWithData.bcc()); if (bcc.length > 0) { msgToSet.setRecipients(RecipientType.BCC, bcc); } }
private void checkTo(final CommonEmail email) { assertEquals(GREEN_MAIL_COM, email.to()[0].toString()); }
/** * Convert from array of {@link EmailAddress} to array of {@link InternetAddress}. * * @param addresses {@link EmailMessage} * @return array of {@link InternetAddress}. Returns empty array if addresses was {@code null}. * @throws MessagingException if there are failures */ public static InternetAddress[] convert(final EmailAddress[] addresses) throws MessagingException { if (addresses == null) { return new InternetAddress[0]; } final int numRecipients = addresses.length; final InternetAddress[] address = new InternetAddress[numRecipients]; for (int i = 0; i < numRecipients; i++) { address[i] = addresses[i].toInternetAddress(); } return address; } }
/** * Sets TO, CC and BCC in msgToSet with TO, CC and BCC from emailWithData. * * @param emailWithData {@link Email} with data * @param msgToSet {@link MimeMessage} to set data into. * @throws MessagingException if there is a failure. */ private void setRecipients(final Email emailWithData, final MimeMessage msgToSet) throws MessagingException { // TO final InternetAddress[] to = EmailAddress.convert(emailWithData.to()); if (to.length > 0) { msgToSet.setRecipients(RecipientType.TO, to); } // CC final InternetAddress[] cc = EmailAddress.convert(emailWithData.cc()); if (cc.length > 0) { msgToSet.setRecipients(RecipientType.CC, cc); } // BCC final InternetAddress[] bcc = EmailAddress.convert(emailWithData.bcc()); if (bcc.length > 0) { msgToSet.setRecipients(RecipientType.BCC, bcc); } }
private void checkFrom(final CommonEmail email) { assertEquals(JODD_USE_ME, email.from().toString()); }
/** * Converts array of {@link String} to {@link EmailAddress}. * * @param addresses array of {@link String}s to convert. * @return an array of {@link EmailAddress}. */ public static EmailAddress[] of(final String... addresses) { if (addresses == null) { return EmailAddress.EMPTY_ARRAY; } if (addresses.length == 0) { return EmailAddress.EMPTY_ARRAY; } final EmailAddress[] res = new EmailAddress[addresses.length]; for (int i = 0; i < addresses.length; i++) { res[i] = EmailAddress.of(addresses[i]); } return res; }
/** * Sets the FROM address by providing personal name and address. * * @param personalName personal name. * @param from email address. * @return this * @see #from(EmailAddress) */ public T from(final String personalName, final String from) { return from(new EmailAddress(personalName, from)); }
/** * Sets FROM, REPLY-TO and recipients. * * @param emailWithData {@link Email} with data * @param msgToSet {@link MimeMessage} to set data into. * @throws MessagingException if there is a failure */ private void setPeople(final Email emailWithData, final MimeMessage msgToSet) throws MessagingException { msgToSet.setFrom(emailWithData.from().toInternetAddress()); msgToSet.setReplyTo(EmailAddress.convert(emailWithData.replyTo())); setRecipients(emailWithData, msgToSet); }
@Test void testParseEMLCyrilic() throws FileNotFoundException, MessagingException { final File emlFile = new File(testDataRoot, "cyrilic.eml"); final ReceivedEmail email = EMLParser.create().parse(emlFile); assertEquals("Tijana <tijan@gmail.com>", email.from().toString()); assertEquals("testapp1@esolut.ions", email.to()[0].toString()); assertEquals("testtest", email.subject()); final List<EmailMessage> messages = email.messages(); assertEquals(2, messages.size()); assertEquals(MimeTypes.MIME_TEXT_PLAIN, messages.get(0).getMimeType()); assertEquals("", messages.get(0).getContent().trim()); assertEquals(MimeTypes.MIME_TEXT_HTML, messages.get(1).getMimeType()); assertEquals("<div dir=\"ltr\"><br></div>", messages.get(1).getContent().trim()); final List<EmailAttachment<? extends DataSource>> attachments = email.attachments(); assertEquals(1, attachments.size()); final EmailAttachment att = attachments.get(0); assertEquals("Copy of РЕКРЕАТИВНА ЕСТЕТСКА ГИМНАСТИКА-флајер - 4.docx", att.getName()); }
/** * Sets the FROM address. * * @param from Address may be specified with personal name like this: {@code Jenny Doe <email@foo.com>}. * @return this * @see #from(EmailAddress) */ public T from(final String from) { return from(EmailAddress.of(from)); }
/** * Appends REPLY-TO address. * * @param personalName personal name. * @param replyTo email address. * @return this * @see #replyTo(EmailAddress) */ public T replyTo(final String personalName, final String replyTo) { return replyTo(new EmailAddress(personalName, replyTo)); }
@Test void testSimpleEML() throws FileNotFoundException, MessagingException { final File emlFile = new File(testDataRoot, "simple.eml"); final ReceivedEmail email = EMLParser.create().parse(emlFile); assertEquals("sender@emailhost.com", email.from().toString()); assertEquals("recipient@emailhost.com", email.to()[0].toString()); assertEquals("Email subject", email.subject()); final List<EmailMessage> messages = email.messages(); assertEquals(1, messages.size()); assertEquals(MimeTypes.MIME_TEXT_HTML, messages.get(0).getMimeType()); assertEquals("<p><strong>Project Name: Some Project and the body continues...</p>", messages.get(0).getContent().trim()); final List<EmailAttachment<? extends DataSource>> attachments = email.attachments(); assertEquals(2, attachments.size()); EmailAttachment att = attachments.get(0); assertEquals("AM22831 Cover Sheet.pdf", att.getName()); att = attachments.get(1); assertEquals("AM22831 Manufacturing Status.xls", att.getName()); }