diff --git a/moto/sesv2/responses.py b/moto/sesv2/responses.py index 6eb4c1ca74d4..775d4ad1dacc 100644 --- a/moto/sesv2/responses.py +++ b/moto/sesv2/responses.py @@ -42,11 +42,16 @@ def send_email(self) -> str: raw_data=base64.b64decode(content["Raw"]["Data"]).decode("utf-8"), ) elif "Simple" in content: + content_body = content["Simple"]["Body"] + if "Html" in content_body: + body = content_body["Html"]["Data"] + else: + body = content_body["Text"]["Data"] message = self.sesv2_backend.send_email( # type: ignore source=from_email_address, destinations=destination, subject=content["Simple"]["Subject"]["Data"], - body=content["Simple"]["Body"]["Text"]["Data"], + body=body, ) elif "Template" in content: raise NotImplementedError("Template functionality not ready") diff --git a/tests/test_sesv2/test_sesv2.py b/tests/test_sesv2/test_sesv2.py index bf167597c551..f390800c1295 100644 --- a/tests/test_sesv2/test_sesv2.py +++ b/tests/test_sesv2/test_sesv2.py @@ -2,7 +2,7 @@ from botocore.exceptions import ClientError import pytest from moto import mock_sesv2, mock_ses, settings -from moto.ses.models import ses_backends, RawMessage +from moto.ses.models import ses_backends, RawMessage, Message from tests import DEFAULT_ACCOUNT_ID from ..test_ses.test_ses_boto3 import get_raw_email @@ -48,11 +48,44 @@ def test_send_email(ses_v1): # pylint: disable=redefined-outer-name if not settings.TEST_SERVER_MODE: backend = ses_backends[DEFAULT_ACCOUNT_ID]["us-east-1"] - msg: RawMessage = backend.sent_messages[0] + msg: Message = backend.sent_messages[0] assert msg.subject == "test subject" assert msg.body == "test body" +@mock_sesv2 +def test_send_html_email(ses_v1): # pylint: disable=redefined-outer-name + # Setup + conn = boto3.client("sesv2", region_name="us-east-1") + ses_v1.verify_domain_identity(Domain="example.com") + kwargs = dict( + FromEmailAddress="test@example.com", + Destination={ + "ToAddresses": ["test_to@example.com"], + }, + Content={ + "Simple": { + "Subject": {"Data": "test subject"}, + "Body": {"Html": {"Data": "