public class AWSJavaMailTransport
extends javax.mail.Transport
This transport implementation only accepts MIME encoded messages (see MimeMessage class) and RFC822 E-mail addresses (see InternetAddress class).
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
accessKey |
static java.lang.String |
AWS_ACCESS_KEY_PROPERTY |
static java.lang.String |
AWS_EMAIL_SERVICE_ENDPOINT_PROPERTY |
static java.lang.String |
AWS_SECRET_KEY_PROPERTY |
private AmazonSimpleEmailServiceClient |
emailService |
private java.lang.String |
httpsEndpoint |
private java.lang.String |
lastMessageId |
private java.lang.String |
secretKey |
private static java.lang.String |
USER_AGENT |
Constructor and Description |
---|
AWSJavaMailTransport(javax.mail.Session session,
javax.mail.URLName urlname) |
Modifier and Type | Method and Description |
---|---|
<X extends AmazonWebServiceRequest> |
appendUserAgent(X request,
java.lang.String userAgent) |
private void |
checkAddresses(javax.mail.Message m,
javax.mail.Address[] addresses)
Checks to ensure at least one recipient is present (either in the Message
or Address[]) and all addresses that are passed in using the Address
array are of type InternetAddress.
|
private void |
checkConnection()
Asserts a valid connection to the email service.
|
private void |
checkMessage(javax.mail.Message msg)
Checks that the message can be sent using AWS Simple E-mail Service.
|
void |
close() |
private void |
collateRecipients(javax.mail.Message m,
javax.mail.Address[] addresses)
Collates any addresses into the message object.
|
java.lang.String |
getLastMessageId()
The unique message identifier ot the last message sent by
sendMessage |
private static boolean |
isNullOrEmpty(java.lang.Object[] o) |
private static boolean |
isNullOrEmpty(java.lang.String s) |
private SendRawEmailRequest |
prepareEmail(javax.mail.Message m)
Prepares the email to be sent using the JavaMail service.
|
protected boolean |
protocolConnect(java.lang.String host,
int port,
java.lang.String awsAccessKey,
java.lang.String awsSecretKey)
Sets up a new AmazonSimpleEmailServiceClient.
|
private void |
sendEmail(javax.mail.Message m,
SendRawEmailRequest req)
Sends an email using AWS E-mail Service and notifies listeners
|
void |
sendMessage(javax.mail.Message msg,
javax.mail.Address[] addresses)
Sends a MIME message through Amazon's E-mail Service with the specified
recipients.
|
addTransportListener, notifyTransportListeners, removeTransportListener, send, send, send, send
public static final java.lang.String AWS_EMAIL_SERVICE_ENDPOINT_PROPERTY
public static final java.lang.String AWS_SECRET_KEY_PROPERTY
public static final java.lang.String AWS_ACCESS_KEY_PROPERTY
private AmazonSimpleEmailServiceClient emailService
private final java.lang.String accessKey
private final java.lang.String secretKey
private final java.lang.String httpsEndpoint
private java.lang.String lastMessageId
private static final java.lang.String USER_AGENT
public AWSJavaMailTransport(javax.mail.Session session, javax.mail.URLName urlname)
public void sendMessage(javax.mail.Message msg, javax.mail.Address[] addresses) throws javax.mail.MessagingException, javax.mail.SendFailedException
sendMessage
in class javax.mail.Transport
msg
- A Mime type e-mail message to be sentaddresses
- Additional e-mail addresses (RFC-822) to be included in the
messagejavax.mail.MessagingException
javax.mail.SendFailedException
private void checkConnection()
private void checkMessage(javax.mail.Message msg) throws javax.mail.MessagingException
javax.mail.MessagingException
private void checkAddresses(javax.mail.Message m, javax.mail.Address[] addresses) throws javax.mail.MessagingException, javax.mail.SendFailedException
javax.mail.MessagingException
javax.mail.SendFailedException
private void collateRecipients(javax.mail.Message m, javax.mail.Address[] addresses) throws javax.mail.MessagingException
javax.mail.MessagingException
private SendRawEmailRequest prepareEmail(javax.mail.Message m) throws javax.mail.MessagingException
m
- A JavaMail message to be converted to a requestjavax.mail.MessagingException
private void sendEmail(javax.mail.Message m, SendRawEmailRequest req) throws javax.mail.SendFailedException, javax.mail.MessagingException
m
- Message used to notify usersreq
- Raw email to be sentjavax.mail.SendFailedException
javax.mail.MessagingException
protected boolean protocolConnect(java.lang.String host, int port, java.lang.String awsAccessKey, java.lang.String awsSecretKey)
protocolConnect
in class javax.mail.Service
host
- Optional - host specifies the AWS E-mail endpointawsAccessKey
- Optional - AWS Access Key (otherwise must specify through
properties file)awsSecretKey
- Optional - AWS Secret key (otherwise must specify through
properties file)public void close() throws javax.mail.MessagingException
close
in class javax.mail.Service
javax.mail.MessagingException
public java.lang.String getLastMessageId()
The unique message identifier ot the last message sent by sendMessage
sendMessage
action.private static boolean isNullOrEmpty(java.lang.String s)
private static boolean isNullOrEmpty(java.lang.Object[] o)
public <X extends AmazonWebServiceRequest> X appendUserAgent(X request, java.lang.String userAgent)