Цей посібник покаже вам, як легко додати потужні можливості для відправки електронних листів у вашому Java Spring Boot додатку за допомогою SendGrid.
Уявіть собі: ваш додаток тепер без зусиль може надсилати привітальні листи новим користувачам, підтвердження замовлень, інструкції для скидання пароля та навіть таргетовані маркетингові повідомлення.
З надійним сервісом SendGrid ви можете бути впевнені, що ваші електронні листи досягнуть своєї мети швидко та ефективно.
Давайте заглибимося в це і зробимо ваш Spring Boot додаток ще крутішим!
Необхідні умови
Перед тим, як почати, переконайтесь, що у вас є:
- Оточення для розробки на Java (JDK 11 або пізніша версія).
- Налаштований Spring Boot у вашому проєкті.
- Обліковий запис SendGrid та API ключ для відправки електронних листів.
- Налаштований менеджер залежностей Maven або Gradle.
Крок 1: Налаштування вашого облікового запису SendGrid
- Зареєструйтесь або увійдіть до вашого облікового запису SendGrid на SendGrid.
- Після входу перейдіть до Налаштування > API ключі та створіть новий API ключ.
3.
Збережіть згенерований API ключ; ви використовуватимете його для налаштування відправки електронних листів у вашому Spring Boot додатку.
Крок 2: Додайте залежності в pom.xml
Відкрийте файл pom.xml
(якщо ви використовуєте Maven) і додайте необхідні залежності.
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-mail
com.sendgrid
sendgrid
4.7.1
Якщо ви використовуєте Gradle, додайте еквівалентні залежності у файл build.gradle
.
Крок 3: Налаштуйте властивості додатку
Наступним кроком налаштуйте параметри SendGrid у файлі application.properties
.
# Налаштування SendGrid
sendgrid.api-key=YOUR_SENDGRID_API_KEY
spring.mail.host=smtp.sendgrid.net
spring.mail.port=587
spring.mail.username=apikey
spring.mail.password=YOUR_SENDGRID_API_KEY
Крок 4: Налаштуйте сервіс для відправки електронних листів через SendGrid
Створіть клас сервісу, який буде обробляти логіку відправки електронних листів через SendGrid API.
package com.example.service;
import com.sendgrid.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
public class EmailService {
@Value("${sendgrid.api-key}")
private String sendGridApiKey;
public void sendEmail(String to, String subject, String body) throws Exception {
Email from = new Email("[email protected]"); // Замініть на ваш email
Email recipient = new Email(to);
Content content = new Content("text/plain", body);
Mail mail = new Mail(from, subject, recipient, content);
SendGrid sg = new SendGrid(sendGridApiKey);
Request request = new Request();
request.setMethod(Method.POST);
request.setEndpoint("mail/send");
request.setBody(mail.build());
Response response = sg.api(request);
System.out.println("Response Status: " + response.getStatusCode());
System.out.println("Response Body: " + response.getBody());
System.out.println("Response Headers: " + response.getHeaders());
}
}
Крок 5: Створіть контролер для обробки запитів на відправку електронних листів
Наступним кроком створіть клас контролера, який дозволить вам відправляти електронні листи через HTTP запити.
package com.example.controller;
import com.example.service.EmailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/email")
public class EmailController {
@Autowired
private EmailService emailService;
@PostMapping("/send")
public String sendEmail(@RequestParam String to, @RequestParam String subject, @RequestParam String body) {
try {
emailService.sendEmail(to, subject, body);
return "Email sent successfully!";
} catch (Exception e) {
e.printStackTrace();
return "Error sending email: " + e.getMessage();
}
}
}
Крок 6: Запуск додатку
- Запустіть ваш Spring Boot додаток: Запустіть додаток, використовуючи команду:
mvn spring-boot:run
Або ви можете запустити додаток безпосередньо з вашої IDE.
2. Перевірка функціональності відправки електронних листів: Тепер ви можете протестувати функціональність відправки листів, звернувшись до ендпоінту /email/send
за допомогою Postman або cURL:
POST http://localhost:8080/email/[email protected]&subject=Test&body=Hello%20World
Якщо все налаштовано правильно, електронний лист має бути відправлений успішно.
Крок 7: Забезпечення безпеки відправки електронних листів (необов'язково)
На даний момент будь-хто може використовувати ваш додаток для відправки електронних листів.
А що якщо ви хочете, щоб лише певні користувачі, такі як адміністратори або користувачі з певними ролями, мали таку можливість? Забезпечимо безпеку відправки електронних листів! Spring Security дозволяє вам контролювати, хто може відправляти електронні листи через ваш додаток. Лише авторизовані користувачі, як адміністратори, матимуть доступ. Це робить вашу систему електронної пошти безпечною та запобігає несанкціонованим відправкам.
Наприклад, ви можете додати Spring Security до вашого додатку і захистити ендпоінт /email/send
.
Додайте цю залежність до pom.xml
:
org.springframework.boot
spring-boot-starter-security
Потім оновіть клас EmailController
, щоб захистити ендпоінт:
import org.springframework.security.access.prepost.PreAuthorize;
@RestController
@RequestMapping("/email")
public class EmailController {
@Autowired
private EmailService emailService;
@PreAuthorize("hasRole('USER')")
@PostMapping("/send")
public String sendEmail(@RequestParam String to, @RequestParam String subject, @RequestParam String body) {
try {
emailService.sendEmail(to, subject, body);
return "Email sent successfully!";
} catch (Exception e) {
e.printStackTrace();
return "Error sending email: " + e.getMessage();
}
}
}
Тепер лише користувачі з роллю USER
можуть отримати доступ до ендпоінту /email/send
. Ви можете налаштувати ролі та аутентифікацію відповідно до ваших вимог.
Висновок
Вітаємо! Ви щойно дізналися, як додати потужність вашому Java Spring Boot додатку за допомогою чудового сервісу електронної пошти SendGrid!
Цей посібник покроково показав, як легко відправляти електронні листи прямо з вашого додатку. Незалежно від того, чи це вітання нових користувачів, підтвердження замовлень чи просто підтримка зв’язку, SendGrid робить це простим і зручним. Ви налаштували свій додаток для використання API ключа SendGrid, створили спеціальний сервіс для всіх ваших потреб щодо електронних листів і навіть побудували простий API для їх відправки.
Готові вразити своїх користувачів надійною та ефективною доставкою електронної пошти завдяки потужності SendGrid!
Перекладено з: Sending Emails with SendGrid API in Java Spring Boot — Practical Implementation Guide