/** * @see #EmailAddress(String, String) */ public static EmailAddress of(final String personalName, final String email) { return new EmailAddress(personalName, email); }
/** * 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)); }
/** * 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)); }
/** * Appends BCC address. * * @param personalName personal name. * @param bcc email address. * @return this * @see #bcc(EmailAddress) */ public Email bcc(final String personalName, final String bcc) { return bcc(new EmailAddress(personalName, bcc)); }
/** * Appends TO address by personal name and email address. * * @param personalName personal name. * @param to email address. * @return this * @see #to(EmailAddress) */ public T to(final String personalName, final String to) { return to(new EmailAddress(personalName, to)); }
/** * Appends CC address. * * @param personalName personal name. * @param cc email address. * @return this * @see #cc(EmailAddress) */ public T cc(final String personalName, final String cc) { return cc(new EmailAddress(personalName, cc)); }
/** * Creates new address by specifying one of the following: * <ul> * <li>{@code "foo@bar.com" - only email address.}</li> * <li>{@code "Jenny Doe <foo@bar.com>" - first part of the string is personal name, * and the other part is email, surrounded with < and >.}</li> * </ul> * * @param address {@link String} containing address to convert. */ public static EmailAddress of(String address) { address = address.trim(); if (!StringUtil.endsWithChar(address, '>')) { return new EmailAddress(null, address); } final int ndx = address.lastIndexOf('<'); if (ndx == -1) { return new EmailAddress(null, address); } String email = address.substring(ndx + 1, address.length() - 1); String personalName = address.substring(0, ndx).trim(); return new EmailAddress(personalName, email); }
/** * Creates new email address from {@link InternetAddress}. * * @param internetAddress {@link InternetAddress} to convert */ public static EmailAddress of(final InternetAddress internetAddress) { return new EmailAddress(internetAddress.getPersonal(), internetAddress.getAddress()); }
/** * Convenient shortcut of {@link #parse(String)} that returns {@link EmailAddress} or {@code null}. */ public EmailAddress parseToEmailAddress(final String email) { final ParsedAddress parsedAddress = parse(email); if (!parsedAddress.isValid()) { return null; } return new EmailAddress(parsedAddress.getPersonalName(), parsedAddress.getLocalPart() + '@' + parsedAddress.getDomain()); }
/** * @see #EmailAddress(String, String) */ public static EmailAddress of(final String personalName, final String email) { return new EmailAddress(personalName, email); }
/** * 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)); }
/** * Appends BCC address. * * @param personalName personal name. * @param bcc email address. * @return this * @see #bcc(EmailAddress) */ public Email bcc(final String personalName, final String bcc) { return bcc(new EmailAddress(personalName, bcc)); }
/** * 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)); }
/** * Appends CC address. * * @param personalName personal name. * @param cc email address. * @return this * @see #cc(EmailAddress) */ public T cc(final String personalName, final String cc) { return cc(new EmailAddress(personalName, cc)); }
/** * Appends TO address by personal name and email address. * * @param personalName personal name. * @param to email address. * @return this * @see #to(EmailAddress) */ public T to(final String personalName, final String to) { return to(new EmailAddress(personalName, to)); }
/** * Creates new address by specifying one of the following: * <ul> * <li>{@code "foo@bar.com" - only email address.}</li> * <li>{@code "Jenny Doe <foo@bar.com>" - first part of the string is personal name, * and the other part is email, surrounded with < and >.}</li> * </ul> * * @param address {@link String} containing address to convert. */ public static EmailAddress of(String address) { address = address.trim(); if (!StringUtil.endsWithChar(address, '>')) { return new EmailAddress(null, address); } final int ndx = address.lastIndexOf('<'); if (ndx == -1) { return new EmailAddress(null, address); } String email = address.substring(ndx + 1, address.length() - 1); String personalName = address.substring(0, ndx).trim(); return new EmailAddress(personalName, email); }
/** * Creates new email address from {@link InternetAddress}. * * @param internetAddress {@link InternetAddress} to convert */ public static EmailAddress of(final InternetAddress internetAddress) { return new EmailAddress(internetAddress.getPersonal(), internetAddress.getAddress()); }
/** * Convenient shortcut of {@link #parse(String)} that returns {@link EmailAddress} or {@code null}. */ public EmailAddress parseToEmailAddress(final String email) { final ParsedAddress parsedAddress = parse(email); if (!parsedAddress.isValid()) { return null; } return new EmailAddress(parsedAddress.getPersonalName(), parsedAddress.getLocalPart() + '@' + parsedAddress.getDomain()); }