IntroductionIn this article we will study how to send email with Spring by integrating with SendGrid's email service. Instead of the usual SMTP, we will use HTTP to communicate with SendGrid.
Table of ContentsPart 1: Introduction and Functional Specs
Part 2: SendGrid account setup
Part 3: Java classes
Part 4: XML configuration
Part 5: Running the Application
To access the source code, please visit the project's Github repository (click here)
Functional SpecsLet's define our application's requirements:
- Create a simple form where users can compose and send emails
- Emails do not need to be persisted in a database
- Send email via HTTP instead of SMTP to avoid firewall issues
Here's our Use Case diagram:
In MVC terms, we decompose the application as follows:
- Model: A simple Map object that conforms with SendGrid's message format
- View: An HTML-based form where users can compose and send emails
- Controller: Spring controller that receives the request. The controller delegates actual work to the service layer which eventually executes an HTTP call to send email to SendGrid.
What is SendGrid?
SendGrid's cloud-based email infrastructure relieves businesses of the cost and complexity of maintaining custom email systems. SendGrid provides reliable delivery, scalability and real-time analytics along with flexible API's that make custom integration a breeze.
- It's easy to integrate with.
- It has a free plan that allows 200 email messages per day.
- SendGrid has an HTTP API for sending emails which is very simple to use.
ScreenshotsLet's preview how our application will look like after it has been completed. This is also a good way to clarify further our application's specs
This is the entry page where users can compose and send emails.
After clicking "Send", the email message is sent. An alert is shown to confirm the action.
When user clicks on "Reset", the contents of the fields are cleared. An alert is shown to confirm the action.
This is the sample email received from Gmail. Notice Gmail is able to show that this email was sent via SendGrid.
This is the sample email received from Yahoo.
NextIn the next section, we will show how to sign-up with SendGrid's email service. This is required before we can start sending emails. Click here to proceed.
Share the joy:
Subscribe by reader Subscribe by email Share