Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Good First Issue] Enable SendGrid as an AWS SES Alternative #102

Open
reecexlm opened this issue Nov 20, 2023 · 2 comments
Open

[Good First Issue] Enable SendGrid as an AWS SES Alternative #102

reecexlm opened this issue Nov 20, 2023 · 2 comments
Labels
good first issue Good for newcomers

Comments

@reecexlm
Copy link
Collaborator

As part of the ongoing efforts to enhance the Stellar Disbursement Platform (SDP), we aim to integrate SendGrid as an alternative to AWS Simple Email Service (SES) for sending emails. This integration will provide additional flexibility and options for email delivery within the platform.

The task involves creating a new SendGrid email client, adapting message formatting to align with SendGrid's API, and extending the existing email client factory to support this new integration. It will also require adding necessary configurations and ensuring seamless integration into the current system, with a focus on maintainability and scalability.

Changes will likely include:

  • Create SendGrid Client: Implement a new client similar to awsSESClient for SendGrid. This would involve creating a struct (e.g., sendGridClient) with methods for sending emails using SendGrid's API.
  • Adapt Message Sending: Adapt the SendMessage method to format messages suitable for SendGrid's API. This might involve creating a new template or modifying the existing generateAWSEmail function.
  • Configuration Changes: Add necessary configurations for SendGrid (API keys, sender information, etc.) in the MessengerOptions struct.
  • Factory Modification: Modify the GetClient function in the message package to include a case for creating a SendGrid client based on the MessengerType.
  • Add SendGrid as a MessengerType: Introduce a new constant (e.g., MessengerTypeSendGridEmail) in the MessengerType enum to represent SendGrid.

Testing and Validation
Unit Tests: Write unit tests for the new SendGrid client ensuring that emails are correctly formatted and sent. Should be able to run them locally.

Error Handling: Implement robust error handling and logging for the SendGrid integration.

Documentation: Update the technical documentation to reflect the new SendGrid integration and its configuration.

Important! - We appreciate you contributing. Please note:

  • No Timeline Pressure: Take your time. There is no strict timeline to complete the issue. We want you to have a comfortable learning experience.

  • Feedback and Code Review: We will provide constructive feedback through code reviews to help ensure this is a great learning opportunity.

  • The goal is to help you get familiar with the project and the contribution process

Documentation: Check out our documentation and step-by-step local dev environment setup instructions in the repository README

Thank you!

@reecexlm reecexlm added the good first issue Good for newcomers label Nov 20, 2023
@steven-tomlinson
Copy link
Contributor

FYI: we're working on integrating this with the PostMark API for our Pakana project.

https://postmark.com

https://communityfund.stellar.org/project/recz9ztUMJstmgCIM

@Oyase-shinobi
Copy link

Hello @steven-tomlinson @reecexlm
I can do it
may I take this issue?

marwen-abid added a commit that referenced this issue Oct 26, 2024
* SDP-970 add Twilio SendGrid Email Client

* SDP-970 PR feedback
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

3 participants