/*
* Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.simpleemail.model;
import java.io.Serializable;
import com.amazonaws.AmazonWebServiceRequest;
/**
* <p>
* Sends an email message, with header and content specified by the client. The
* <code>SendRawEmail</code> action is useful for sending multipart MIME emails.
* The raw text of the message must comply with Internet email standards;
* otherwise, the message cannot be sent.
* </p>
* <p>
* There are several important points to know about <code>SendRawEmail</code>:
* </p>
* <ul>
* <li>
* <p>
* You can only send email from verified email addresses and domains; otherwise,
* you will get an "Email address not verified" error. If your account is still
* in the Amazon SES sandbox, you must also verify every recipient email address
* except for the recipients provided by the Amazon SES mailbox simulator. For
* more information, go to the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* <li>
* <p>
* The total size of the message cannot exceed 10 MB. This includes any
* attachments that are part of the message.
* </p>
* </li>
* <li>
* <p>
* Amazon SES has a limit on the total number of recipients per message. The
* combined number of To:, CC: and BCC: email addresses cannot exceed 50. If you
* need to send an email message to a larger audience, you can divide your
* recipient list into groups of 50 or fewer, and then call Amazon SES
* repeatedly to send the message to each group.
* </p>
* </li>
* <li>
* <p>
* The To:, CC:, and BCC: headers in the raw message can contain a group list.
* Note that each recipient in a group list counts towards the 50-recipient
* limit.
* </p>
* </li>
* <li>
* <p>
* For every message that you send, the total number of recipients (To:, CC: and
* BCC:) is counted against your sending quota - the maximum number of emails
* you can send in a 24-hour period. For information about your sending quota,
* go to the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/manage-sending-limits.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* <li>
* <p>
* If you are using sending authorization to send on behalf of another user,
* <code>SendRawEmail</code> enables you to specify the cross-account identity
* for the email's "Source," "From," and "Return-Path" parameters in one of two
* ways: you can pass optional parameters <code>SourceArn</code>,
* <code>FromArn</code>, and/or <code>ReturnPathArn</code> to the API, or you
* can include the following X-headers in the header of your raw email:
* </p>
* <ul>
* <li>
* <p>
* <code>X-SES-SOURCE-ARN</code>
* </p>
* </li>
* <li>
* <p>
* <code>X-SES-FROM-ARN</code>
* </p>
* </li>
* <li>
* <p>
* <code>X-SES-RETURN-PATH-ARN</code>
* </p>
* </li>
* </ul>
* <important>
* <p>
* Do not include these X-headers in the DKIM signature, because they are
* removed by Amazon SES before sending the email.
* </p>
* </important>
* <p>
* For the most common sending authorization use case, we recommend that you
* specify the <code>SourceIdentityArn</code> and do not specify either the
* <code>FromIdentityArn</code> or <code>ReturnPathIdentityArn</code>. (The same
* note applies to the corresponding X-headers.) If you only specify the
* <code>SourceIdentityArn</code>, Amazon SES will simply set the "From" address
* and the "Return Path" address to the identity specified in
* <code>SourceIdentityArn</code>. For more information about sending
* authorization, see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* </ul>
*/
public class SendRawEmailRequest extends AmazonWebServiceRequest implements Serializable {
/**
* <p>
* The identity's email address. If you do not provide a value for this
* parameter, you must specify a "From" address in the raw text of the
* message. (You can also specify both.)
* </p>
* <p>
* By default, the string must be 7-bit ASCII. If the text must contain any
* other characters, then you must use MIME encoded-word syntax (RFC 2047)
* instead of a literal string. MIME encoded-word syntax uses the following
* form: <code>=?charset?encoding?encoded-text?=</code>. For more
* information, see <a href="http://tools.ietf.org/html/rfc2047">RFC
* 2047</a>.
* </p>
* <note>
* <p>
* If you specify the <code>Source</code> parameter and have feedback
* forwarding enabled, then bounces and complaints will be sent to this
* email address. This takes precedence over any <i>Return-Path</i> header
* that you might include in the raw text of the message.
* </p>
* </note>
*/
private String source;
/**
* <p>
* A list of destinations for the message, consisting of To:, CC:, and BCC:
* addresses.
* </p>
*/
private java.util.List<String> destinations = new java.util.ArrayList<String>();
/**
* <p>
* The raw text of the message. The client is responsible for ensuring the
* following:
* </p>
* <ul>
* <li>
* <p>
* Message must contain a header and a body, separated by a blank line.
* </p>
* </li>
* <li>
* <p>
* All required header fields must be present.
* </p>
* </li>
* <li>
* <p>
* Each part of a multipart MIME message must be formatted properly.
* </p>
* </li>
* <li>
* <p>
* MIME content types must be among those supported by Amazon SES. For more
* information, go to the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* <li>
* <p>
* Content must be base64-encoded, if MIME requires it.
* </p>
* </li>
* </ul>
*/
private RawMessage rawMessage;
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to specify a particular "From" address in the header of
* the raw email.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use
* both the <code>FromArn</code> parameter and the corresponding X-header,
* Amazon SES uses the value of the <code>FromArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*/
private String fromArn;
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to send for the email address specified in the
* <code>Source</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
* attaches a policy to it that authorizes you to send from
* <code>user@example.com</code>, then you would specify the
* <code>SourceArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
* the <code>Source</code> to be <code>user@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-SOURCE-ARN</code> in the raw message of the email. If you use
* both the <code>SourceArn</code> parameter and the corresponding X-header,
* Amazon SES uses the value of the <code>SourceArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*/
private String sourceArn;
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to use the email address specified in the
* <code>ReturnPath</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
* attaches a policy to it that authorizes you to use
* <code>feedback@example.com</code>, then you would specify the
* <code>ReturnPathArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
* the <code>ReturnPath</code> to be <code>feedback@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If
* you use both the <code>ReturnPathArn</code> parameter and the
* corresponding X-header, Amazon SES uses the value of the
* <code>ReturnPathArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*/
private String returnPathArn;
/**
* Default constructor for SendRawEmailRequest object. Callers should use
* the setter or fluent setter (with...) methods to initialize any
* additional object members.
*/
public SendRawEmailRequest() {
}
/**
* Constructs a new SendRawEmailRequest object. Callers should use the
* setter or fluent setter (with...) methods to initialize any additional
* object members.
*
* @param rawMessage <p>
* The raw text of the message. The client is responsible for
* ensuring the following:
* </p>
* <ul>
* <li>
* <p>
* Message must contain a header and a body, separated by a blank
* line.
* </p>
* </li>
* <li>
* <p>
* All required header fields must be present.
* </p>
* </li>
* <li>
* <p>
* Each part of a multipart MIME message must be formatted
* properly.
* </p>
* </li>
* <li>
* <p>
* MIME content types must be among those supported by Amazon
* SES. For more information, go to the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* <li>
* <p>
* Content must be base64-encoded, if MIME requires it.
* </p>
* </li>
* </ul>
*/
public SendRawEmailRequest(RawMessage rawMessage) {
setRawMessage(rawMessage);
}
/**
* <p>
* The identity's email address. If you do not provide a value for this
* parameter, you must specify a "From" address in the raw text of the
* message. (You can also specify both.)
* </p>
* <p>
* By default, the string must be 7-bit ASCII. If the text must contain any
* other characters, then you must use MIME encoded-word syntax (RFC 2047)
* instead of a literal string. MIME encoded-word syntax uses the following
* form: <code>=?charset?encoding?encoded-text?=</code>. For more
* information, see <a href="http://tools.ietf.org/html/rfc2047">RFC
* 2047</a>.
* </p>
* <note>
* <p>
* If you specify the <code>Source</code> parameter and have feedback
* forwarding enabled, then bounces and complaints will be sent to this
* email address. This takes precedence over any <i>Return-Path</i> header
* that you might include in the raw text of the message.
* </p>
* </note>
*
* @return <p>
* The identity's email address. If you do not provide a value for
* this parameter, you must specify a "From" address in the raw text
* of the message. (You can also specify both.)
* </p>
* <p>
* By default, the string must be 7-bit ASCII. If the text must
* contain any other characters, then you must use MIME encoded-word
* syntax (RFC 2047) instead of a literal string. MIME encoded-word
* syntax uses the following form:
* <code>=?charset?encoding?encoded-text?=</code>. For more
* information, see <a href="http://tools.ietf.org/html/rfc2047">RFC
* 2047</a>.
* </p>
* <note>
* <p>
* If you specify the <code>Source</code> parameter and have
* feedback forwarding enabled, then bounces and complaints will be
* sent to this email address. This takes precedence over any
* <i>Return-Path</i> header that you might include in the raw text
* of the message.
* </p>
* </note>
*/
public String getSource() {
return source;
}
/**
* <p>
* The identity's email address. If you do not provide a value for this
* parameter, you must specify a "From" address in the raw text of the
* message. (You can also specify both.)
* </p>
* <p>
* By default, the string must be 7-bit ASCII. If the text must contain any
* other characters, then you must use MIME encoded-word syntax (RFC 2047)
* instead of a literal string. MIME encoded-word syntax uses the following
* form: <code>=?charset?encoding?encoded-text?=</code>. For more
* information, see <a href="http://tools.ietf.org/html/rfc2047">RFC
* 2047</a>.
* </p>
* <note>
* <p>
* If you specify the <code>Source</code> parameter and have feedback
* forwarding enabled, then bounces and complaints will be sent to this
* email address. This takes precedence over any <i>Return-Path</i> header
* that you might include in the raw text of the message.
* </p>
* </note>
*
* @param source <p>
* The identity's email address. If you do not provide a value
* for this parameter, you must specify a "From" address in the
* raw text of the message. (You can also specify both.)
* </p>
* <p>
* By default, the string must be 7-bit ASCII. If the text must
* contain any other characters, then you must use MIME
* encoded-word syntax (RFC 2047) instead of a literal string.
* MIME encoded-word syntax uses the following form:
* <code>=?charset?encoding?encoded-text?=</code>. For more
* information, see <a
* href="http://tools.ietf.org/html/rfc2047">RFC 2047</a>.
* </p>
* <note>
* <p>
* If you specify the <code>Source</code> parameter and have
* feedback forwarding enabled, then bounces and complaints will
* be sent to this email address. This takes precedence over any
* <i>Return-Path</i> header that you might include in the raw
* text of the message.
* </p>
* </note>
*/
public void setSource(String source) {
this.source = source;
}
/**
* <p>
* The identity's email address. If you do not provide a value for this
* parameter, you must specify a "From" address in the raw text of the
* message. (You can also specify both.)
* </p>
* <p>
* By default, the string must be 7-bit ASCII. If the text must contain any
* other characters, then you must use MIME encoded-word syntax (RFC 2047)
* instead of a literal string. MIME encoded-word syntax uses the following
* form: <code>=?charset?encoding?encoded-text?=</code>. For more
* information, see <a href="http://tools.ietf.org/html/rfc2047">RFC
* 2047</a>.
* </p>
* <note>
* <p>
* If you specify the <code>Source</code> parameter and have feedback
* forwarding enabled, then bounces and complaints will be sent to this
* email address. This takes precedence over any <i>Return-Path</i> header
* that you might include in the raw text of the message.
* </p>
* </note>
* <p>
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param source <p>
* The identity's email address. If you do not provide a value
* for this parameter, you must specify a "From" address in the
* raw text of the message. (You can also specify both.)
* </p>
* <p>
* By default, the string must be 7-bit ASCII. If the text must
* contain any other characters, then you must use MIME
* encoded-word syntax (RFC 2047) instead of a literal string.
* MIME encoded-word syntax uses the following form:
* <code>=?charset?encoding?encoded-text?=</code>. For more
* information, see <a
* href="http://tools.ietf.org/html/rfc2047">RFC 2047</a>.
* </p>
* <note>
* <p>
* If you specify the <code>Source</code> parameter and have
* feedback forwarding enabled, then bounces and complaints will
* be sent to this email address. This takes precedence over any
* <i>Return-Path</i> header that you might include in the raw
* text of the message.
* </p>
* </note>
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public SendRawEmailRequest withSource(String source) {
this.source = source;
return this;
}
/**
* <p>
* A list of destinations for the message, consisting of To:, CC:, and BCC:
* addresses.
* </p>
*
* @return <p>
* A list of destinations for the message, consisting of To:, CC:,
* and BCC: addresses.
* </p>
*/
public java.util.List<String> getDestinations() {
return destinations;
}
/**
* <p>
* A list of destinations for the message, consisting of To:, CC:, and BCC:
* addresses.
* </p>
*
* @param destinations <p>
* A list of destinations for the message, consisting of To:,
* CC:, and BCC: addresses.
* </p>
*/
public void setDestinations(java.util.Collection<String> destinations) {
if (destinations == null) {
this.destinations = null;
return;
}
this.destinations = new java.util.ArrayList<String>(destinations);
}
/**
* <p>
* A list of destinations for the message, consisting of To:, CC:, and BCC:
* addresses.
* </p>
* <p>
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param destinations <p>
* A list of destinations for the message, consisting of To:,
* CC:, and BCC: addresses.
* </p>
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public SendRawEmailRequest withDestinations(String... destinations) {
if (getDestinations() == null) {
this.destinations = new java.util.ArrayList<String>(destinations.length);
}
for (String value : destinations) {
this.destinations.add(value);
}
return this;
}
/**
* <p>
* A list of destinations for the message, consisting of To:, CC:, and BCC:
* addresses.
* </p>
* <p>
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param destinations <p>
* A list of destinations for the message, consisting of To:,
* CC:, and BCC: addresses.
* </p>
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public SendRawEmailRequest withDestinations(java.util.Collection<String> destinations) {
setDestinations(destinations);
return this;
}
/**
* <p>
* The raw text of the message. The client is responsible for ensuring the
* following:
* </p>
* <ul>
* <li>
* <p>
* Message must contain a header and a body, separated by a blank line.
* </p>
* </li>
* <li>
* <p>
* All required header fields must be present.
* </p>
* </li>
* <li>
* <p>
* Each part of a multipart MIME message must be formatted properly.
* </p>
* </li>
* <li>
* <p>
* MIME content types must be among those supported by Amazon SES. For more
* information, go to the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* <li>
* <p>
* Content must be base64-encoded, if MIME requires it.
* </p>
* </li>
* </ul>
*
* @return <p>
* The raw text of the message. The client is responsible for
* ensuring the following:
* </p>
* <ul>
* <li>
* <p>
* Message must contain a header and a body, separated by a blank
* line.
* </p>
* </li>
* <li>
* <p>
* All required header fields must be present.
* </p>
* </li>
* <li>
* <p>
* Each part of a multipart MIME message must be formatted properly.
* </p>
* </li>
* <li>
* <p>
* MIME content types must be among those supported by Amazon SES.
* For more information, go to the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* <li>
* <p>
* Content must be base64-encoded, if MIME requires it.
* </p>
* </li>
* </ul>
*/
public RawMessage getRawMessage() {
return rawMessage;
}
/**
* <p>
* The raw text of the message. The client is responsible for ensuring the
* following:
* </p>
* <ul>
* <li>
* <p>
* Message must contain a header and a body, separated by a blank line.
* </p>
* </li>
* <li>
* <p>
* All required header fields must be present.
* </p>
* </li>
* <li>
* <p>
* Each part of a multipart MIME message must be formatted properly.
* </p>
* </li>
* <li>
* <p>
* MIME content types must be among those supported by Amazon SES. For more
* information, go to the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* <li>
* <p>
* Content must be base64-encoded, if MIME requires it.
* </p>
* </li>
* </ul>
*
* @param rawMessage <p>
* The raw text of the message. The client is responsible for
* ensuring the following:
* </p>
* <ul>
* <li>
* <p>
* Message must contain a header and a body, separated by a blank
* line.
* </p>
* </li>
* <li>
* <p>
* All required header fields must be present.
* </p>
* </li>
* <li>
* <p>
* Each part of a multipart MIME message must be formatted
* properly.
* </p>
* </li>
* <li>
* <p>
* MIME content types must be among those supported by Amazon
* SES. For more information, go to the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* <li>
* <p>
* Content must be base64-encoded, if MIME requires it.
* </p>
* </li>
* </ul>
*/
public void setRawMessage(RawMessage rawMessage) {
this.rawMessage = rawMessage;
}
/**
* <p>
* The raw text of the message. The client is responsible for ensuring the
* following:
* </p>
* <ul>
* <li>
* <p>
* Message must contain a header and a body, separated by a blank line.
* </p>
* </li>
* <li>
* <p>
* All required header fields must be present.
* </p>
* </li>
* <li>
* <p>
* Each part of a multipart MIME message must be formatted properly.
* </p>
* </li>
* <li>
* <p>
* MIME content types must be among those supported by Amazon SES. For more
* information, go to the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* <li>
* <p>
* Content must be base64-encoded, if MIME requires it.
* </p>
* </li>
* </ul>
* <p>
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param rawMessage <p>
* The raw text of the message. The client is responsible for
* ensuring the following:
* </p>
* <ul>
* <li>
* <p>
* Message must contain a header and a body, separated by a blank
* line.
* </p>
* </li>
* <li>
* <p>
* All required header fields must be present.
* </p>
* </li>
* <li>
* <p>
* Each part of a multipart MIME message must be formatted
* properly.
* </p>
* </li>
* <li>
* <p>
* MIME content types must be among those supported by Amazon
* SES. For more information, go to the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mime-types.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </li>
* <li>
* <p>
* Content must be base64-encoded, if MIME requires it.
* </p>
* </li>
* </ul>
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public SendRawEmailRequest withRawMessage(RawMessage rawMessage) {
this.rawMessage = rawMessage;
return this;
}
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to specify a particular "From" address in the header of
* the raw email.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use
* both the <code>FromArn</code> parameter and the corresponding X-header,
* Amazon SES uses the value of the <code>FromArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*
* @return <p>
* This parameter is used only for sending authorization. It is the
* ARN of the identity that is associated with the sending
* authorization policy that permits you to specify a particular
* "From" address in the header of the raw email.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-FROM-ARN</code> in the raw message of the email. If
* you use both the <code>FromArn</code> parameter and the
* corresponding X-header, Amazon SES uses the value of the
* <code>FromArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the
* description of <code>SendRawEmail</code> in this guide, or see
* the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*/
public String getFromArn() {
return fromArn;
}
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to specify a particular "From" address in the header of
* the raw email.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use
* both the <code>FromArn</code> parameter and the corresponding X-header,
* Amazon SES uses the value of the <code>FromArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*
* @param fromArn <p>
* This parameter is used only for sending authorization. It is
* the ARN of the identity that is associated with the sending
* authorization policy that permits you to specify a particular
* "From" address in the header of the raw email.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-FROM-ARN</code> in the raw message of the email.
* If you use both the <code>FromArn</code> parameter and the
* corresponding X-header, Amazon SES uses the value of the
* <code>FromArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the
* description of <code>SendRawEmail</code> in this guide, or see
* the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*/
public void setFromArn(String fromArn) {
this.fromArn = fromArn;
}
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to specify a particular "From" address in the header of
* the raw email.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-FROM-ARN</code> in the raw message of the email. If you use
* both the <code>FromArn</code> parameter and the corresponding X-header,
* Amazon SES uses the value of the <code>FromArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
* <p>
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param fromArn <p>
* This parameter is used only for sending authorization. It is
* the ARN of the identity that is associated with the sending
* authorization policy that permits you to specify a particular
* "From" address in the header of the raw email.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-FROM-ARN</code> in the raw message of the email.
* If you use both the <code>FromArn</code> parameter and the
* corresponding X-header, Amazon SES uses the value of the
* <code>FromArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the
* description of <code>SendRawEmail</code> in this guide, or see
* the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public SendRawEmailRequest withFromArn(String fromArn) {
this.fromArn = fromArn;
return this;
}
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to send for the email address specified in the
* <code>Source</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
* attaches a policy to it that authorizes you to send from
* <code>user@example.com</code>, then you would specify the
* <code>SourceArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
* the <code>Source</code> to be <code>user@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-SOURCE-ARN</code> in the raw message of the email. If you use
* both the <code>SourceArn</code> parameter and the corresponding X-header,
* Amazon SES uses the value of the <code>SourceArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*
* @return <p>
* This parameter is used only for sending authorization. It is the
* ARN of the identity that is associated with the sending
* authorization policy that permits you to send for the email
* address specified in the <code>Source</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which has
* ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* ) attaches a policy to it that authorizes you to send from
* <code>user@example.com</code>, then you would specify the
* <code>SourceArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* , and the <code>Source</code> to be <code>user@example.com</code>
* .
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-SOURCE-ARN</code> in the raw message of the email. If
* you use both the <code>SourceArn</code> parameter and the
* corresponding X-header, Amazon SES uses the value of the
* <code>SourceArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the
* description of <code>SendRawEmail</code> in this guide, or see
* the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*/
public String getSourceArn() {
return sourceArn;
}
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to send for the email address specified in the
* <code>Source</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
* attaches a policy to it that authorizes you to send from
* <code>user@example.com</code>, then you would specify the
* <code>SourceArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
* the <code>Source</code> to be <code>user@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-SOURCE-ARN</code> in the raw message of the email. If you use
* both the <code>SourceArn</code> parameter and the corresponding X-header,
* Amazon SES uses the value of the <code>SourceArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*
* @param sourceArn <p>
* This parameter is used only for sending authorization. It is
* the ARN of the identity that is associated with the sending
* authorization policy that permits you to send for the email
* address specified in the <code>Source</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which
* has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* ) attaches a policy to it that authorizes you to send from
* <code>user@example.com</code>, then you would specify the
* <code>SourceArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* , and the <code>Source</code> to be
* <code>user@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-SOURCE-ARN</code> in the raw message of the email.
* If you use both the <code>SourceArn</code> parameter and the
* corresponding X-header, Amazon SES uses the value of the
* <code>SourceArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the
* description of <code>SendRawEmail</code> in this guide, or see
* the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*/
public void setSourceArn(String sourceArn) {
this.sourceArn = sourceArn;
}
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to send for the email address specified in the
* <code>Source</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
* attaches a policy to it that authorizes you to send from
* <code>user@example.com</code>, then you would specify the
* <code>SourceArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
* the <code>Source</code> to be <code>user@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-SOURCE-ARN</code> in the raw message of the email. If you use
* both the <code>SourceArn</code> parameter and the corresponding X-header,
* Amazon SES uses the value of the <code>SourceArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
* <p>
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param sourceArn <p>
* This parameter is used only for sending authorization. It is
* the ARN of the identity that is associated with the sending
* authorization policy that permits you to send for the email
* address specified in the <code>Source</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which
* has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* ) attaches a policy to it that authorizes you to send from
* <code>user@example.com</code>, then you would specify the
* <code>SourceArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* , and the <code>Source</code> to be
* <code>user@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-SOURCE-ARN</code> in the raw message of the email.
* If you use both the <code>SourceArn</code> parameter and the
* corresponding X-header, Amazon SES uses the value of the
* <code>SourceArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the
* description of <code>SendRawEmail</code> in this guide, or see
* the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public SendRawEmailRequest withSourceArn(String sourceArn) {
this.sourceArn = sourceArn;
return this;
}
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to use the email address specified in the
* <code>ReturnPath</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
* attaches a policy to it that authorizes you to use
* <code>feedback@example.com</code>, then you would specify the
* <code>ReturnPathArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
* the <code>ReturnPath</code> to be <code>feedback@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If
* you use both the <code>ReturnPathArn</code> parameter and the
* corresponding X-header, Amazon SES uses the value of the
* <code>ReturnPathArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*
* @return <p>
* This parameter is used only for sending authorization. It is the
* ARN of the identity that is associated with the sending
* authorization policy that permits you to use the email address
* specified in the <code>ReturnPath</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which has
* ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* ) attaches a policy to it that authorizes you to use
* <code>feedback@example.com</code>, then you would specify the
* <code>ReturnPathArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* , and the <code>ReturnPath</code> to be
* <code>feedback@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the
* email. If you use both the <code>ReturnPathArn</code> parameter
* and the corresponding X-header, Amazon SES uses the value of the
* <code>ReturnPathArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the
* description of <code>SendRawEmail</code> in this guide, or see
* the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*/
public String getReturnPathArn() {
return returnPathArn;
}
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to use the email address specified in the
* <code>ReturnPath</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
* attaches a policy to it that authorizes you to use
* <code>feedback@example.com</code>, then you would specify the
* <code>ReturnPathArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
* the <code>ReturnPath</code> to be <code>feedback@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If
* you use both the <code>ReturnPathArn</code> parameter and the
* corresponding X-header, Amazon SES uses the value of the
* <code>ReturnPathArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*
* @param returnPathArn <p>
* This parameter is used only for sending authorization. It is
* the ARN of the identity that is associated with the sending
* authorization policy that permits you to use the email address
* specified in the <code>ReturnPath</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which
* has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* ) attaches a policy to it that authorizes you to use
* <code>feedback@example.com</code>, then you would specify the
* <code>ReturnPathArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* , and the <code>ReturnPath</code> to be
* <code>feedback@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the
* email. If you use both the <code>ReturnPathArn</code>
* parameter and the corresponding X-header, Amazon SES uses the
* value of the <code>ReturnPathArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the
* description of <code>SendRawEmail</code> in this guide, or see
* the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
*/
public void setReturnPathArn(String returnPathArn) {
this.returnPathArn = returnPathArn;
}
/**
* <p>
* This parameter is used only for sending authorization. It is the ARN of
* the identity that is associated with the sending authorization policy
* that permits you to use the email address specified in the
* <code>ReturnPath</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>)
* attaches a policy to it that authorizes you to use
* <code>feedback@example.com</code>, then you would specify the
* <code>ReturnPathArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>, and
* the <code>ReturnPath</code> to be <code>feedback@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the email. If
* you use both the <code>ReturnPathArn</code> parameter and the
* corresponding X-header, Amazon SES uses the value of the
* <code>ReturnPathArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the description of
* <code>SendRawEmail</code> in this guide, or see the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
* <p>
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param returnPathArn <p>
* This parameter is used only for sending authorization. It is
* the ARN of the identity that is associated with the sending
* authorization policy that permits you to use the email address
* specified in the <code>ReturnPath</code> parameter.
* </p>
* <p>
* For example, if the owner of <code>example.com</code> (which
* has ARN
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* ) attaches a policy to it that authorizes you to use
* <code>feedback@example.com</code>, then you would specify the
* <code>ReturnPathArn</code> to be
* <code>arn:aws:ses:us-east-1:123456789012:identity/example.com</code>
* , and the <code>ReturnPath</code> to be
* <code>feedback@example.com</code>.
* </p>
* <p>
* Instead of using this parameter, you can use the X-header
* <code>X-SES-RETURN-PATH-ARN</code> in the raw message of the
* email. If you use both the <code>ReturnPathArn</code>
* parameter and the corresponding X-header, Amazon SES uses the
* value of the <code>ReturnPathArn</code> parameter.
* </p>
* <note>
* <p>
* For information about when to use this parameter, see the
* description of <code>SendRawEmail</code> in this guide, or see
* the <a href=
* "http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-delegate-sender-tasks-email.html"
* >Amazon SES Developer Guide</a>.
* </p>
* </note>
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public SendRawEmailRequest withReturnPathArn(String returnPathArn) {
this.returnPathArn = returnPathArn;
return this;
}
/**
* Returns a string representation of this object; useful for testing and
* debugging.
*
* @return A string representation of this object.
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getSource() != null)
sb.append("Source: " + getSource() + ",");
if (getDestinations() != null)
sb.append("Destinations: " + getDestinations() + ",");
if (getRawMessage() != null)
sb.append("RawMessage: " + getRawMessage() + ",");
if (getFromArn() != null)
sb.append("FromArn: " + getFromArn() + ",");
if (getSourceArn() != null)
sb.append("SourceArn: " + getSourceArn() + ",");
if (getReturnPathArn() != null)
sb.append("ReturnPathArn: " + getReturnPathArn());
sb.append("}");
return sb.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getSource() == null) ? 0 : getSource().hashCode());
hashCode = prime * hashCode
+ ((getDestinations() == null) ? 0 : getDestinations().hashCode());
hashCode = prime * hashCode + ((getRawMessage() == null) ? 0 : getRawMessage().hashCode());
hashCode = prime * hashCode + ((getFromArn() == null) ? 0 : getFromArn().hashCode());
hashCode = prime * hashCode + ((getSourceArn() == null) ? 0 : getSourceArn().hashCode());
hashCode = prime * hashCode
+ ((getReturnPathArn() == null) ? 0 : getReturnPathArn().hashCode());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof SendRawEmailRequest == false)
return false;
SendRawEmailRequest other = (SendRawEmailRequest) obj;
if (other.getSource() == null ^ this.getSource() == null)
return false;
if (other.getSource() != null && other.getSource().equals(this.getSource()) == false)
return false;
if (other.getDestinations() == null ^ this.getDestinations() == null)
return false;
if (other.getDestinations() != null
&& other.getDestinations().equals(this.getDestinations()) == false)
return false;
if (other.getRawMessage() == null ^ this.getRawMessage() == null)
return false;
if (other.getRawMessage() != null
&& other.getRawMessage().equals(this.getRawMessage()) == false)
return false;
if (other.getFromArn() == null ^ this.getFromArn() == null)
return false;
if (other.getFromArn() != null && other.getFromArn().equals(this.getFromArn()) == false)
return false;
if (other.getSourceArn() == null ^ this.getSourceArn() == null)
return false;
if (other.getSourceArn() != null
&& other.getSourceArn().equals(this.getSourceArn()) == false)
return false;
if (other.getReturnPathArn() == null ^ this.getReturnPathArn() == null)
return false;
if (other.getReturnPathArn() != null
&& other.getReturnPathArn().equals(this.getReturnPathArn()) == false)
return false;
return true;
}
}