from aws_lambda_powertools import Logger from aws_lambda_powertools.utilities.data_classes import ( EventBridgeEvent, event_source, ) from aws_lambda_powertools.utilities.typing import LambdaContext from layercake.email_ import Message from layercake.strutils import first_word from boto3clients import sesv2_client from config import EMAIL_SENDER logger = Logger(__name__) @event_source(data_class=EventBridgeEvent) def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool: new_image = event.detail['new_image'] # Key pattern `EMAIL_VERIFICATION#{code}` *_, code = new_image['sk'].split('#') first_name = first_word(new_image['name']) org_name = new_image.get('org_name') if isinstance(org_name, str): subject = f'{first_name}, você foi cadastrado na EDUSEG®' body = f""" Oi {first_name}, tudo bem?

Sua conta foi criada na EDUSEG pela empresa {org_name}.

👉 Clique aqui para fazer seu primeiro acesso """ else: subject = f'{first_name}, sua conta na EDUSEG® foi criada' body = f""" Oi {first_name}, tudo bem?

Sua conta na EDUSEG® foi criada com sucesso.

👉 Clique aqui para verificar endereço de email """ emailmsg = Message( from_=EMAIL_SENDER, to=(new_image['name'], new_image['email']), subject=subject, ) emailmsg.add_alternative(body) try: sesv2_client.send_email( Content={ 'Raw': { 'Data': emailmsg.as_bytes(), }, } ) logger.info('Email sent') except Exception as exc: logger.exception(exc) return False else: return True