public class Mailer extends Object
Email instances.
- root
- related
- alternative
- mail text
- mail html text
- embedded images
- attachments
Email email = new Email();
email.setFromAddress("lollypop", "lolly.pop@somemail.com");
email.addRecipient("Sugar Cane", "sugar.cane@candystore.org", RecipientType.TO);
email.setText("We should meet up!!");
email.setTextHTML("<b>We should meet up!</b>");
email.setSubject("Hey");
new Mailer(preconfiguredMailSession).sendMail(email);
// or:
new Mailer("smtp.someserver.com", 25, "username", "password").sendMail(email);
Mailer.MimeEmailMessageWrapper,
Email| Constructor and Description |
|---|
Mailer(javax.mail.Session session)
Default constructor, stores the given mail session for later use.
|
Mailer(String host,
Integer port,
String username,
String password)
Overloaded constructor which produces a new
Session on the fly, using default vanilla SMTP transport protocol. |
Mailer(String host,
Integer port,
String username,
String password,
TransportStrategy transportStrategy)
Overloaded constructor which produces a new
Session on the fly. |
| Modifier and Type | Method and Description |
|---|---|
void |
applyProperties(Properties properties)
Copies all property entries into the
Session using Session.getProperties(). |
protected javax.mail.Session |
createMailSession(String host,
Integer port,
String username,
String password)
Actually instantiates and configures the
Session instance. |
javax.mail.Session |
getSession()
In case Simple Java Mail falls short somehow, you can get a hold of the internal
Session instance to debug or tweak. |
static javax.mail.internet.MimeMessage |
produceMimeMessage(Email email,
javax.mail.Session session)
Creates a new
MimeMessage instance and prepares it in the email structure, so that it can be filled and send. |
void |
sendMail(Email email)
Processes an
Email instance into a completely configured Message. |
void |
setDebug(boolean debug)
Actually sets
Session.setDebug(boolean) so that it generates debug information. |
void |
setEmailAddressCriteria(EnumSet<org.hazlewood.connor.bottema.emailaddress.EmailAddressCriteria> emailAddressCriteria)
Overrides the default email address validation restrictions
emailAddressCriteria when validating and sending emails using the current
Mailer instance. |
protected static javax.mail.internet.MimeMessage |
signMessageWithDKIM(javax.mail.internet.MimeMessage message,
Email email)
Primes the
MimeMessage instance for signing with DKIM. |
boolean |
validate(Email email)
Validates an
Email instance. |
public Mailer(javax.mail.Session session)
session - A preconfigured mail Session object with which a Message can be produced.public Mailer(String host, Integer port, String username, String password, TransportStrategy transportStrategy)
Session on the fly. Use this if you don't have a mail session configured in your web container, or
Spring context etc.host - The address URL of the SMTP server to be used.port - The port of the SMTP server.username - An optional username, may be null.password - An optional password, may be null, but only if username is null as well.transportStrategy - The transport protocol configuration type for handling SSL or TLS (or vanilla SMTP)public Mailer(String host, Integer port, String username, String password)
Session on the fly, using default vanilla SMTP transport protocol.host - The address URL of the SMTP server to be used.port - The port of the SMTP server.username - An optional username, may be null.password - An optional password, may be null, but only if username is null as well.Mailer(String, Integer, String, String, TransportStrategy)protected javax.mail.Session createMailSession(String host, Integer port, String username, String password)
Session instance. Delegates resolving transport protocol specific properties to the transportStrategy in two ways: host - The address URL of the SMTP server to be used.port - The port of the SMTP server.username - An optional username, may be null.password - An optional password, may be null.Session instance complete with transport protocol settings.TransportStrategy.generateProperties(),
TransportStrategy.propertyNameHost(),
TransportStrategy.propertyNamePort(),
TransportStrategy.propertyNameUsername(),
TransportStrategy.propertyNameAuthenticate()public javax.mail.Session getSession()
Session instance to debug or tweak. Please let us know why you
are needing this on https://github.com/bbottema/simple-java-mail/issues.public void setDebug(boolean debug)
Session.setDebug(boolean) so that it generates debug information.debug - Flag to indicate debug mode yes/no.public void applyProperties(Properties properties)
Session using Session.getProperties().properties - The source properties to add or override in the internal Session instance.public final void sendMail(Email email) throws MailException
Email instance into a completely configured Message.
Sends the Sun JavaMail Message object using Session.getTransport(). It will call Service.connect() assuming all connection
details have been configured in the provided Session instance.
Performs a call to Message.saveChanges() as the Sun JavaMail API indicates it is needed to configure the message headers and providing a message
id.email - The information for the email to be sent.MailException - Can be thrown if an email isn't validating correctly, or some other problem occurs during connection, sending etc.validate(Email),
produceMimeMessage(Email, Session),
setRecipients(Email, Message),
setTexts(Email, MimeMultipart),
setEmbeddedImages(Email, MimeMultipart),
setAttachments(Email, MimeMultipart)public boolean validate(Email email) throws MailException
Email instance. Validation fails if the subject is missing, content is missing, or no recipients are defined.email - The email that needs to be configured correctly.true (throws a MailException exception if validation fails).MailException - Is being thrown in any of the above causes.EmailAddressValidatorpublic static javax.mail.internet.MimeMessage produceMimeMessage(Email email, javax.mail.Session session) throws javax.mail.MessagingException, UnsupportedEncodingException
MimeMessage instance and prepares it in the email structure, so that it can be filled and send.
Fills subject, from,reply-to, content, sent-date, recipients, texts, embedded images, attachments, content and adds all headers.email - The email message from which the subject and From-address are extracted.session - The Session to attach the MimeMessage toMessage instance, ready to be sent.javax.mail.MessagingException - May be thrown when the message couldn't be processed by JavaMail.UnsupportedEncodingException - Zie InternetAddress.InternetAddress(String, String).protected static javax.mail.internet.MimeMessage signMessageWithDKIM(javax.mail.internet.MimeMessage message,
Email email)
MimeMessage instance for signing with DKIM. The signing itself is performed by DkimMessage and DkimSigner during the
physical sending of the message.message - The message to be signed when sent.email - The Email that contains the relevant signing informationpublic void setEmailAddressCriteria(EnumSet<org.hazlewood.connor.bottema.emailaddress.EmailAddressCriteria> emailAddressCriteria)
emailAddressCriteria when validating and sending emails using the current
Mailer instance.Copyright © 2016. All rights reserved.