/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SESV2 { namespace Model { /** *

An object that defines the entire content of the email, including the message * headers and the body content. You can create a simple email message, in which * you specify the subject and the text and HTML versions of the message body. You * can also create raw messages, in which you specify a complete MIME-formatted * message. Raw messages can include attachments and custom headers.

See * Also:

AWS * API Reference

*/ class EmailContent { public: AWS_SESV2_API EmailContent(); AWS_SESV2_API EmailContent(Aws::Utils::Json::JsonView jsonValue); AWS_SESV2_API EmailContent& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SESV2_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The simple email message. The message consists of a subject and a message * body.

*/ inline const Message& GetSimple() const{ return m_simple; } /** *

The simple email message. The message consists of a subject and a message * body.

*/ inline bool SimpleHasBeenSet() const { return m_simpleHasBeenSet; } /** *

The simple email message. The message consists of a subject and a message * body.

*/ inline void SetSimple(const Message& value) { m_simpleHasBeenSet = true; m_simple = value; } /** *

The simple email message. The message consists of a subject and a message * body.

*/ inline void SetSimple(Message&& value) { m_simpleHasBeenSet = true; m_simple = std::move(value); } /** *

The simple email message. The message consists of a subject and a message * body.

*/ inline EmailContent& WithSimple(const Message& value) { SetSimple(value); return *this;} /** *

The simple email message. The message consists of a subject and a message * body.

*/ inline EmailContent& WithSimple(Message&& value) { SetSimple(std::move(value)); return *this;} /** *

The raw email message. The message has to meet the following criteria:

*
  • The message has to contain a header and a body, separated by one * blank line.

  • All of the required header fields must be present * in the message.

  • Each part of a multipart MIME message must be * formatted properly.

  • If you include attachments, they must be * in a file format that the Amazon SES API v2 supports.

  • The * entire message must be Base64 encoded.

  • If any of the MIME * parts in your message contain content that is outside of the 7-bit ASCII * character range, you should encode that content to ensure that recipients' email * clients render the message properly.

  • The length of any single * line of text in the message can't exceed 1,000 characters. This restriction is * defined in RFC 5321.

  • *
*/ inline const RawMessage& GetRaw() const{ return m_raw; } /** *

The raw email message. The message has to meet the following criteria:

*
  • The message has to contain a header and a body, separated by one * blank line.

  • All of the required header fields must be present * in the message.

  • Each part of a multipart MIME message must be * formatted properly.

  • If you include attachments, they must be * in a file format that the Amazon SES API v2 supports.

  • The * entire message must be Base64 encoded.

  • If any of the MIME * parts in your message contain content that is outside of the 7-bit ASCII * character range, you should encode that content to ensure that recipients' email * clients render the message properly.

  • The length of any single * line of text in the message can't exceed 1,000 characters. This restriction is * defined in RFC 5321.

  • *
*/ inline bool RawHasBeenSet() const { return m_rawHasBeenSet; } /** *

The raw email message. The message has to meet the following criteria:

*
  • The message has to contain a header and a body, separated by one * blank line.

  • All of the required header fields must be present * in the message.

  • Each part of a multipart MIME message must be * formatted properly.

  • If you include attachments, they must be * in a file format that the Amazon SES API v2 supports.

  • The * entire message must be Base64 encoded.

  • If any of the MIME * parts in your message contain content that is outside of the 7-bit ASCII * character range, you should encode that content to ensure that recipients' email * clients render the message properly.

  • The length of any single * line of text in the message can't exceed 1,000 characters. This restriction is * defined in RFC 5321.

  • *
*/ inline void SetRaw(const RawMessage& value) { m_rawHasBeenSet = true; m_raw = value; } /** *

The raw email message. The message has to meet the following criteria:

*
  • The message has to contain a header and a body, separated by one * blank line.

  • All of the required header fields must be present * in the message.

  • Each part of a multipart MIME message must be * formatted properly.

  • If you include attachments, they must be * in a file format that the Amazon SES API v2 supports.

  • The * entire message must be Base64 encoded.

  • If any of the MIME * parts in your message contain content that is outside of the 7-bit ASCII * character range, you should encode that content to ensure that recipients' email * clients render the message properly.

  • The length of any single * line of text in the message can't exceed 1,000 characters. This restriction is * defined in RFC 5321.

  • *
*/ inline void SetRaw(RawMessage&& value) { m_rawHasBeenSet = true; m_raw = std::move(value); } /** *

The raw email message. The message has to meet the following criteria:

*
  • The message has to contain a header and a body, separated by one * blank line.

  • All of the required header fields must be present * in the message.

  • Each part of a multipart MIME message must be * formatted properly.

  • If you include attachments, they must be * in a file format that the Amazon SES API v2 supports.

  • The * entire message must be Base64 encoded.

  • If any of the MIME * parts in your message contain content that is outside of the 7-bit ASCII * character range, you should encode that content to ensure that recipients' email * clients render the message properly.

  • The length of any single * line of text in the message can't exceed 1,000 characters. This restriction is * defined in RFC 5321.

  • *
*/ inline EmailContent& WithRaw(const RawMessage& value) { SetRaw(value); return *this;} /** *

The raw email message. The message has to meet the following criteria:

*
  • The message has to contain a header and a body, separated by one * blank line.

  • All of the required header fields must be present * in the message.

  • Each part of a multipart MIME message must be * formatted properly.

  • If you include attachments, they must be * in a file format that the Amazon SES API v2 supports.

  • The * entire message must be Base64 encoded.

  • If any of the MIME * parts in your message contain content that is outside of the 7-bit ASCII * character range, you should encode that content to ensure that recipients' email * clients render the message properly.

  • The length of any single * line of text in the message can't exceed 1,000 characters. This restriction is * defined in RFC 5321.

  • *
*/ inline EmailContent& WithRaw(RawMessage&& value) { SetRaw(std::move(value)); return *this;} /** *

The template to use for the email message.

*/ inline const Template& GetTemplate() const{ return m_template; } /** *

The template to use for the email message.

*/ inline bool TemplateHasBeenSet() const { return m_templateHasBeenSet; } /** *

The template to use for the email message.

*/ inline void SetTemplate(const Template& value) { m_templateHasBeenSet = true; m_template = value; } /** *

The template to use for the email message.

*/ inline void SetTemplate(Template&& value) { m_templateHasBeenSet = true; m_template = std::move(value); } /** *

The template to use for the email message.

*/ inline EmailContent& WithTemplate(const Template& value) { SetTemplate(value); return *this;} /** *

The template to use for the email message.

*/ inline EmailContent& WithTemplate(Template&& value) { SetTemplate(std::move(value)); return *this;} private: Message m_simple; bool m_simpleHasBeenSet = false; RawMessage m_raw; bool m_rawHasBeenSet = false; Template m_template; bool m_templateHasBeenSet = false; }; } // namespace Model } // namespace SESV2 } // namespace Aws