/*
* Copyright 2010-2014 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.
*/
/*
* Do not modify this file. This file is generated from the email-2010-12-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.SimpleEmail.Model
{
///
/// Container for the parameters to the SendTemplatedEmail operation.
/// Composes an email message using an email template and immediately queues it for sending.
///
///
///
/// In order to send email using the SendTemplatedEmail
operation, your call
/// to the API must meet the following requirements:
///
/// -
///
/// The call must refer to an existing email template. You can create email templates
/// using the CreateTemplate operation.
///
///
-
///
/// The message must be sent from a verified email address or domain.
///
///
-
///
/// If your account is still in the Amazon SES sandbox, you may only send to verified
/// addresses or domains, or to email addresses associated with the Amazon SES Mailbox
/// Simulator. For more information, see Verifying
/// Email Addresses and Domains in the Amazon SES Developer Guide.
///
///
-
///
/// The maximum message size is 10 MB.
///
///
-
///
/// Calls to the
SendTemplatedEmail
operation may only include one Destination
/// parameter. A destination is a set of recipients who will receive the same version
/// of the email. The Destination
parameter can include up to 50 recipients,
/// across the To:, CC: and BCC: fields.
///
/// -
///
/// The
Destination
parameter must include at least one recipient email address.
/// The recipient address can be a To: address, a CC: address, or a BCC: address. If a
/// recipient email address is invalid (that is, it is not in the format UserName@[SubDomain.]Domain.TopLevelDomain),
/// the entire message will be rejected, even if the message contains other recipients
/// that are valid.
///
///
///
/// If your call to the SendTemplatedEmail
operation includes all of the
/// required parameters, Amazon SES accepts it and returns a Message ID. However, if Amazon
/// SES can't render the email because the template contains errors, it doesn't send the
/// email. Additionally, because it already accepted the message, Amazon SES doesn't return
/// a message stating that it was unable to send the email.
///
///
///
/// For these reasons, we highly recommend that you set up Amazon SES to send you notifications
/// when Rendering Failure events occur. For more information, see Sending
/// Personalized Email Using the Amazon SES API in the Amazon Simple Email Service
/// Developer Guide.
///
///
///
public partial class SendTemplatedEmailRequest : AmazonSimpleEmailServiceRequest
{
private string _configurationSetName;
private Destination _destination;
private List _replyToAddresses = new List();
private string _returnPath;
private string _returnPathArn;
private string _source;
private string _sourceArn;
private List _tags = new List();
private string _template;
private string _templateArn;
private string _templateData;
///
/// Gets and sets the property ConfigurationSetName.
///
/// The name of the configuration set to use when you send an email using SendTemplatedEmail
.
///
///
public string ConfigurationSetName
{
get { return this._configurationSetName; }
set { this._configurationSetName = value; }
}
// Check to see if ConfigurationSetName property is set
internal bool IsSetConfigurationSetName()
{
return this._configurationSetName != null;
}
///
/// Gets and sets the property Destination.
///
/// The destination for this email, composed of To:, CC:, and BCC: fields. A Destination
/// can include up to 50 recipients across these three fields.
///
///
[AWSProperty(Required=true)]
public Destination Destination
{
get { return this._destination; }
set { this._destination = value; }
}
// Check to see if Destination property is set
internal bool IsSetDestination()
{
return this._destination != null;
}
///
/// Gets and sets the property ReplyToAddresses.
///
/// The reply-to email address(es) for the message. If the recipient replies to the message,
/// each reply-to address will receive the reply.
///
///
public List ReplyToAddresses
{
get { return this._replyToAddresses; }
set { this._replyToAddresses = value; }
}
// Check to see if ReplyToAddresses property is set
internal bool IsSetReplyToAddresses()
{
return this._replyToAddresses != null && this._replyToAddresses.Count > 0;
}
///
/// Gets and sets the property ReturnPath.
///
/// The email address that bounces and complaints will be forwarded to when feedback forwarding
/// is enabled. If the message cannot be delivered to the recipient, then an error message
/// will be returned from the recipient's ISP; this message will then be forwarded to
/// the email address specified by the ReturnPath
parameter. The ReturnPath
/// parameter is never overwritten. This email address must be either individually verified
/// with Amazon SES, or from a domain that has been verified with Amazon SES.
///
///
public string ReturnPath
{
get { return this._returnPath; }
set { this._returnPath = value; }
}
// Check to see if ReturnPath property is set
internal bool IsSetReturnPath()
{
return this._returnPath != null;
}
///
/// Gets and sets the property ReturnPathArn.
///
/// 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 ReturnPath
parameter.
///
///
///
/// For example, if the owner of example.com
(which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com
)
/// attaches a policy to it that authorizes you to use feedback@example.com
,
/// then you would specify the ReturnPathArn
to be arn:aws:ses:us-east-1:123456789012:identity/example.com
,
/// and the ReturnPath
to be feedback@example.com
.
///
///
///
/// For more information about sending authorization, see the Amazon
/// SES Developer Guide.
///
///
public string ReturnPathArn
{
get { return this._returnPathArn; }
set { this._returnPathArn = value; }
}
// Check to see if ReturnPathArn property is set
internal bool IsSetReturnPathArn()
{
return this._returnPathArn != null;
}
///
/// Gets and sets the property Source.
///
/// The email address that is sending the email. This email address must be either individually
/// verified with Amazon SES, or from a domain that has been verified with Amazon SES.
/// For information about verifying identities, see the Amazon
/// SES Developer Guide.
///
///
///
/// If you are sending on behalf of another user and have been permitted to do so by a
/// sending authorization policy, then you must also specify the SourceArn
/// parameter. For more information about sending authorization, see the Amazon
/// SES Developer Guide.
///
///
///
/// Amazon SES does not support the SMTPUTF8 extension, as described in RFC6531.
/// For this reason, the local part of a source email address (the part of the
/// email address that precedes the @ sign) may only contain 7-bit
/// ASCII characters. If the domain part of an address (the part after the
/// @ sign) contains non-ASCII characters, they must be encoded using Punycode, as described
/// in RFC3492. The sender name
/// (also known as the friendly name) may contain non-ASCII characters. These characters
/// must be encoded using MIME encoded-word syntax, as described inRFC
/// 2047. MIME encoded-word syntax uses the following form: =?charset?encoding?encoded-text?=
.
///
///
///
[AWSProperty(Required=true)]
public string Source
{
get { return this._source; }
set { this._source = value; }
}
// Check to see if Source property is set
internal bool IsSetSource()
{
return this._source != null;
}
///
/// Gets and sets the property SourceArn.
///
/// 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 Source
parameter.
///
///
///
/// For example, if the owner of example.com
(which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com
)
/// attaches a policy to it that authorizes you to send from user@example.com
,
/// then you would specify the SourceArn
to be arn:aws:ses:us-east-1:123456789012:identity/example.com
,
/// and the Source
to be user@example.com
.
///
///
///
/// For more information about sending authorization, see the Amazon
/// SES Developer Guide.
///
///
public string SourceArn
{
get { return this._sourceArn; }
set { this._sourceArn = value; }
}
// Check to see if SourceArn property is set
internal bool IsSetSourceArn()
{
return this._sourceArn != null;
}
///
/// Gets and sets the property Tags.
///
/// A list of tags, in the form of name/value pairs, to apply to an email that you send
/// using SendTemplatedEmail
. Tags correspond to characteristics of the email
/// that you define, so that you can publish email sending events.
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property Template.
///
/// The template to use when sending this email.
///
///
[AWSProperty(Required=true)]
public string Template
{
get { return this._template; }
set { this._template = value; }
}
// Check to see if Template property is set
internal bool IsSetTemplate()
{
return this._template != null;
}
///
/// Gets and sets the property TemplateArn.
///
/// The ARN of the template to use when sending this email.
///
///
public string TemplateArn
{
get { return this._templateArn; }
set { this._templateArn = value; }
}
// Check to see if TemplateArn property is set
internal bool IsSetTemplateArn()
{
return this._templateArn != null;
}
///
/// Gets and sets the property TemplateData.
///
/// A list of replacement values to apply to the template. This parameter is a JSON object,
/// typically consisting of key-value pairs in which the keys correspond to replacement
/// tags in the email template.
///
///
[AWSProperty(Required=true, Max=262144)]
public string TemplateData
{
get { return this._templateData; }
set { this._templateData = value; }
}
// Check to see if TemplateData property is set
internal bool IsSetTemplateData()
{
return this._templateData != null;
}
}
}