Lihtsa meiliteenuse (AWS SES) juhend koos Spring Booti ja Spring Cloud PlatoBlockchaini andmeluurega. Vertikaalne otsing. Ai.

Spring Booti ja Spring Cloudi lihtsa meiliteenuse (AWS SES) juhend

Sissejuhatus

AWS SES (lihtne meiliteenus) on lihtsalt seadistatav e-kirjade saatmise ja vastuvõtmise teenus. Kohapealse meilisüsteemi haldamine on tavaliselt keeruline, peen ja tüütu, seetõttu on protsessi allhange populaarne valik.

Saame kasutada Amazon SES-i oma klientidele tehingute, turundusmeilide või muude teavitusmeilide saatmiseks. See on taskukohane lahendus igas suuruses ettevõtetele, kes kasutavad oma klientidega ühenduse loomiseks e-kirju, kuna see on üles ehitatud usaldusväärsele ja skaleeritavale infrastruktuurile. Amazon Web Services (AWS).

Hulgimeilide saatmiseks võivad kõik rakendused Amazon SES-iga suhelda. Maksame ainult nende e-kirjade eest, mida me tegelikult saadame, olgu need siis tehingu- või turundusmeilid. Lisaks toetab Amazon SES mitmesuguseid konfiguratsioone, sealhulgas spetsiaalseid, jagatud või omanduses olevaid IP-aadresse. Ettevõtted saavad muuta iga meili oluliseks, kasutades kohaletoimetavuse armatuurlaudu ja saatjateabe aruandeid.

Selles juhendis konfigureerime piirkonnas AWS SES-i eksemplari ja seejärel integreerime sellega Kevadpilv AWS-i jaoks mis on alamprojekt Kevadine pilv. Proovime oma rakendusest meilide saatmiseks erinevaid stsenaariume.

Märge: Kogu juhendis kasutatud lähtekoodi leiate aadressilt Github.

AWS SES-i abil meili saatmise elutsükkel

Vaatame, kuidas rakenduse poolt saadetud meili elutsükkel jõuab sihtpostkasti:

  • Rakendus, meie puhul Spring Cloudi kood, palub AWS SES-il saata e-kiri ühele või mitmele adressaadile.

  • SES kontrollib algselt taotlust ja kui see on heaks kiidetud, koostab meilisõnumi päringu spetsifikatsioonidega. Sellel meilisõnumil on päis, sisu ja ümbrik ning see vastab nõuetele RFC 5322Interneti-sõnumi vormingu määratlus.

  • Seejärel edastab SES sõnumi Interneti kaudu adressaadi vastuvõtjale. Niipea, kui sõnum SES-ile edastatakse, edastatakse see sageli kohe, kusjuures esialgne edastamiskatse toimub tavaliselt mõne millisekundi jooksul.

  • Sel ajal on mitu tulemust. Näiteks:

    • Edukas kohaletoimetamine: Interneti-teenuse pakkuja (ISP) aktsepteerib meili ja saadab selle soovitud adressaadile.
    • Raske põrge: Kuna adressaadi aadress on kehtetu, lükkab Interneti-teenuse pakkuja meili tagasi. Interneti-teenuse pakkuja saadab kõva põrkumise teatise tagasi Amazon SES-ile, mis teavitab saatjat meili teel või avaldab selle Amazon Simple Notification Service'i (Amazon SNS) teemas, mis on seadistatud selle teatise saamiseks.
    • Pehme põrge: selliste tingimuste tõttu nagu saaja postkast on täis, domeen ei ole olemas või mis tahes mööduv asjaolu, näiteks Interneti-teenuse pakkuja on taotluse töötlemiseks liiga hõivatud, ei pruugi Interneti-teenuse pakkuja meili adressaadile edastada. Seejärel proovib Interneti-teenuse pakkuja meili kuni teatud arv kordi uuesti ja saadab SES-ile pehme tagasilöögisõnumi. Kui SES ei saa meili määratud aja jooksul kohale toimetada, avaldab see sündmuse SNS-i teemas või saadab meili teel raske tagasilöögisõnumi.
    • Kaebus: saaja liigitab meili oma meiliprogrammis rämpspostiks. Kaebusteade edastatakse Amazon SES-ile, mis seejärel edastab selle saatjale, kui Amazon SES ja Interneti-teenuse pakkuja on loonud tagasisideahel.
    • Automaatne reageerimine: saaja Interneti-teenuse pakkuja teavitab Amazon SES-i vastuvõtja automaatsest vastusest, näiteks kontorist väljasoleku teatest, ja Amazon SES edastab teate saatjale.

Kui kohaletoimetamine ebaõnnestub, tagastab Amazon SES saatjale veateate ja kustutab meili.

Amazon SES-i seadistamine

Erinevalt teistest AWS-i teenustest ei ole praktiliselt vaja SES-i eksemplari luua, kuna kõik uued AWS-i kontod paigutatakse vaikimisi AWS-i SES-i liivakasti. Igal AWS-i kontol on vaikimisi liivakasti juurdepääs AWS SES-i jaoks saadaolevates piirkondades.

Liivakastirežiimi kasutamisel saame e-kirju saata ainult kinnitatud identiteetidele. Domeen või meiliaadress, mida me meili saatmiseks kasutame, on kinnitatud identiteet. Peame konstrueerima ja kinnitama iga identiteedi, mida kavatseme kasutada a From, To, Source, Sendervõi Return-Path aadress, enne kui saame liivakastirežiimis SES-i kasutades meili saata. Kasutades identiteedi kontrollimiseks Amazon SES-i, saame tõestada oma omandiõigust ja lõpetada ebaseadusliku kasutamise.

Pettuste vältimiseks ja IP-aadressi maine säilitamiseks sisaldab AWS SES meili saatmise piiranguid. Need piirangud määravad iga kasutaja jaoks maksimaalse e-kirjade arvu sekundis ja päevase meililimiidi. Kui võtame ühendust AWS-i tugikeskusega, võime kehtestada sellised kvoodid piirkonniti.

Kontrollime isikuid. Logige sisse AWS-i konsooli ja otsige "Amazoni lihtne meiliteenus"

SESi tutvustus

Seejärel klõpsakeLoo identiteet”, et lisada kinnitamiseks e-kiri või domeen. Meie puhul lisame kinnitamiseks meili.

Loo identiteet

Kui identiteet on loodud, saame üksikasju kontrollida.

Loodud identiteet

Identiteet, mille me lõime, läheb "Kinnitamine on ootel” etapp. Selles etapis peab kasutaja kontrollima AWS-i kinnituskirja ja järgima e-kirja kinnitamiseks juhiseid.

Kinnitatud identiteet

Järgmiseks peame tooma "juurdepääsuvõti"Ja"salajane võti” meie rakenduse autentimiseks ja autoriseerimiseks SES-iga. Selle loomiseks peame looma kasutajarühma ja lisama sellesse gruppi kasutaja. Selle kasutaja loomisel loob AWS juurdepääsuvõtme ja salajase võtme. Nii et suuname ümber lehele "IAM” AWS-konsoolis ja looge kasutajarühm.

Loo kasutajagrupp

Siis peame lisama "Administrator Access” luba sellele rühmale SES-i jaoks.

Lisa luba

Lõpuks lisame ülaltoodud rühma kasutaja.

Lisa kasutaja

Järgmisena peame valima lubade rühma.

Lisa rühm

Lõpuks kopeerige edasiseks kasutamiseks ekraanil kuvatud juurdepääsuvõti ja salajane võti.

Meilide saatmine Spring Cloud Projecti abil

Projekti seadistamine

Loome Spring Cloudi projekti ja käime läbi kasutusjuhtumid, et integreerida SES-iga. Lihtsaim viis skeletiprojektiga alustamiseks on kaudu Kevadine algseade:

Kevadine algseade

Oleme lisanud Kevadine veeb REST MVC jaoks, Apache Freemarker HTML-põhiste meilimallide loomiseks, Java meilisaatja meili saatmiseks ja Lombok (valikuline katlaplaati vähendav raamatukogu) sõltuvused. Lisaks peame lisama Spring Cloud AWS-i ja SES-i jaoks asjakohased sõltuvused. Spring Cloud AWS-i jaoks lisame oma eraldi Spring Cloud AWS-i BOM-i pom.xml faili seda kasutades plokk:

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>io.awspring.cloud</groupId>
			<artifactId>spring-cloud-aws-dependencies</artifactId>
			<version>2.3.0</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

Lõpuks, SES-i toe lisamiseks peame lisama mooduli sõltuvuse, mis on saadaval käivitusmoodulina spring-cloud-starter-aws-ses:

<dependency>
	<groupId>io.awspring.cloud</groupId>
	<artifactId>spring-cloud-starter-aws-ses</artifactId>
</dependency>

spring-cloud-starter-aws-ses sisaldab transitiivseid sõltuvusi jaoks spring-cloud-starter-awsja spring-cloud-aws-ses. spring-cloud-aws-ses SES-i moodul sisaldab kahte klassi: SimpleEmailServiceMailSender ja SimpleEmailServiceJavaMailSender.

  • . SimpleEmailServiceMailSender klass kasutab meilide saatmiseks Amazon Simple Email Service'i. Java Maili API ei ole selle rakenduse jaoks nõutav. Seda saab kasutada lihtsate, manusteta meilisõnumite saatmiseks.
  • . SimpleEmailServiceJavaMailSender klass võimaldab saata e-kirju, mis sisaldavad manuseid ja muid mime elemente.

Nii et see katab kõik meie põhinõuded!

Ubade seadistamine

Nagu eespool mainitud, peame määratlema kahte tüüpi ube: SimpleEmailServiceMailSender ja SimpleEmailServiceJavaMailSender. Saame lihtsalt juurdepääsuvõtme ja salajase võtme mandaatidena edastada ning konfigureerida a MailSender uba, mida kasutame meilide saatmiseks:

@Configuration
public class SesConfig {

    @Value("${cloud.aws.credentials.access-key}")
    private String accessKey;

    @Value("${cloud.aws.credentials.secret-key}")
    private String secretKey;

    @Value("${cloud.aws.region.static}")
    private String region;

    @Bean
    public AmazonSimpleEmailService amazonSimpleEmailService() {
        BasicAWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
        return AmazonSimpleEmailServiceClientBuilder.standard()
                .withCredentials(new AWSStaticCredentialsProvider(credentials))
                .withRegion(region)
                .build();
    }

    @Bean
    public MailSender mailSender(AmazonSimpleEmailService amazonSimpleEmailService) {
        return new SimpleEmailServiceMailSender(amazonSimpleEmailService);
    }

    @Bean
    public JavaMailSender javaMailSender(AmazonSimpleEmailService amazonSimpleEmailService) {
        return new SimpleEmailServiceJavaMailSender(amazonSimpleEmailService);
    }
}

Manustega meilide saatmiseks peame konfigureerima SimpleEmailServiceJavaMailSender mis on teostus JavaMailSender liides Spring's meili abstraktsioonist.

Tutvuge meie praktilise ja praktilise Giti õppimise juhendiga, mis sisaldab parimaid tavasid, tööstusharus aktsepteeritud standardeid ja kaasas olevat petulehte. Lõpetage Giti käskude guugeldamine ja tegelikult õppima seda!

Samuti määratleme atribuudid, millest teavet hankida application.yml:

cloud:
  aws:
    region:
      static: eu-central-1
      auto: false
    stack:
      auto: false
    credentials:
      access-key: ********
      secret-key: **************************

Lihtsa meili saatmine

Saame saata lihtsaid e-kirju kasutades SimpleEmailServiceMailSender uba, mille me ülal seadistasime. Määratleme selle uba kasutamiseks teenusekihi:

@Service
public class EmailService {

    @Autowired
    private MailSender mailSender;

    public void sendMessage(SimpleMailMessage simpleMailMessage) {
        this.mailSender.send(simpleMailMessage);
    }
}

Me helistame send() meetodis MailSender uba meie meili saatmiseks. Samuti peame läbima SimpleMailMessage mis sisaldaks selliseid atribuute nagu from, to, meie meili tekst ja teema. Niisiis, defineerime a Controller klass, et helistada ülaltoodud teenusele REST API abil:

@RestController
public class EmailController {

    @Autowired
    private EmailService emailService;

    @PostMapping("/sendEmail")
    public String sendMessage(@RequestBody EmailDetails emailDetails) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(emailDetails.getFromEmail());
        simpleMailMessage.setTo(emailDetails.getToEmail());
        simpleMailMessage.setSubject(emailDetails.getSubject());
        simpleMailMessage.setText(emailDetails.getBody());
        emailService.sendMessage(simpleMailMessage);

        return "Email sent successfully";
    }
}

Nüüd, kui käivitame rakenduse ja käivitame järgmise loki, saadab see kinnitatud e-posti aadressile meili:

curl -i -X POST 
   -H "Content-Type:application/json" 
   -d 
'{
  "fromEmail": "[email protected]",
  "toEmail": "[email protected]",
  "subject": "test email",
  "body": "Hi, This is a test email."
}' 
 'http://localhost:8080/sendEmail'

Järgmisena saame sisse logida saaja meiliaadressile ja kontrollida, kas saaja on meili kätte saanud.

Lihtne meili saatmine koos manusega

Määratleme teenusekihi, mis edastab manuse MIME-na ja määrame muud meiliatribuudid, nagu from, to, tekst ja teema:

@Service
public class EmailService {

    @Autowired
    private JavaMailSender javaMailSender;

    public void sendMessageWithAttachment(SimpleMailMessage simpleMailMessage) {

        try {
            MimeMessage message = javaMailSender.createMimeMessage();

            
            MimeMessageHelper helper = new MimeMessageHelper(
                    message,
                    MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED,
                    StandardCharsets.UTF_8.name());

            
            helper.addAttachment("logo.png", new ClassPathResource("logo.png"));
            helper.setTo(Objects.requireNonNull(simpleMailMessage.getTo()));
            helper.setText(Objects.requireNonNull(simpleMailMessage.getText()));
            helper.setSubject(Objects.requireNonNull(simpleMailMessage.getSubject()));
            helper.setFrom(Objects.requireNonNull(simpleMailMessage.getFrom()));
            javaMailSender.send(message);

        } catch (MessagingException e) {
            System.err.println("Exception: " + e.getMessage());
        }
    }
}

Siin me kasutame MimeMessageHelper manusega meili loomiseks. Lõpuks määratleme Controller kiht läbima SimpleMailMessage atribuudid:

@RestController
public class EmailController {

    @Autowired
    private EmailService emailService;

    @PostMapping("/sendEmailWithAttachment")
    public String sendMessageWithAttachment(@RequestBody EmailDetails emailDetails) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(emailDetails.getFromEmail());
        simpleMailMessage.setTo(emailDetails.getToEmail());
        simpleMailMessage.setSubject(emailDetails.getSubject());
        simpleMailMessage.setText(emailDetails.getBody());
        emailService.sendMessageWithAttachment(simpleMailMessage);

        return "Email sent successfully";
    }
}

Nüüd, kui käivitame rakenduse ja käivitame järgmise loki, saadab see kinnitatud e-posti aadressile meili:

curl -i -X POST 
   -H "Content-Type:application/json" 
   -d 
'{
  "fromEmail": "[email protected]",
  "toEmail": "[email protected]",
  "subject": "test email",
  "body": "Hi, This is a test email with attachment."
}' 
 'http://localhost:8080/sendEmailWithAttachment'

Järgmisena saame sisse logida saaja meiliaadressile ja kontrollida, kas saaja on meili kätte saanud.

Meilimalli saatmine koos manusega

Varasemad kasutusjuhtumid, mida nägime, sobivad hästi arendus- või testistsenaariumide jaoks, kuid tootmises kasutame üldiselt meilimalli muutujatega, mis asendatakse API vastuste abil. Varem olime lisanud sõltuvuse Apache Freemarker. Kasutame seda malli määratlemiseks ja töötlemiseks laadimiseks!

Selleks määrame esmalt lihtsa malli, nimetame selle järgmiselt email-template.ftl ja asetage see sisse templates kausta all resources:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>StackAbuse Email</title>
</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td align="center" valign="top" bgcolor="#838383"
            style="background-color: #838383;"><br> <br>
            <table width="600" border="0" cellspacing="0" cellpadding="0">
                <tr>
                    <td align="center" valign="top" bgcolor="#d3be6c"
                        style="background-color: #d3be6c; font-family: Arial,
                         Helvetica, sans-serif; font-size: 13px; color: #000000;
                          padding: 0px 15px 10px 15px;">

                        <div style="font-size: 48px; color:blue;">
                            <b>StackAbuse</b>
                        </div>

                        <div style="font-size: 24px; color: #555100;">
                            <br> Sending Email using Spring Cloud with <b>FreeMarker</b> template !!! <br>
                        </div>
                        <div>
                            <br> Want to learn a new technology or become an in-demand full-stack developer?<br>
                            <br> We teach the skills you need to level up in your career.<br>
                            <br>"Sharing knowledge is the biggest learning" <br> <br>
                            <br> <br> <b>${Name}</b><br>${location}<br>
                            <br>
                        </div>
                    </td>
                </tr>
            </table> <br> <br></td>
    </tr>
</table>
</body>
</html>

Järgmisena peame määratlema konfiguratsiooniklassi, et mall teelt laadida ja oana lisada. Selleks me määratleme FreeMarkerConfigurationFactoryBean:

@Configuration
public class FreemarkerConfig {

    @Primary
    @Bean
    public FreeMarkerConfigurationFactoryBean factoryBean() {
        FreeMarkerConfigurationFactoryBean bean = new FreeMarkerConfigurationFactoryBean();
        bean.setTemplateLoaderPath("classpath:/templates");
        return bean;
    }
}

Järgmisena määratleme oma teenusekihi selle malli laadimiseks ja loome lõpliku sõnumi, mis saadetakse SES-ile:

@Service
public class EmailService {
    
    @Autowired
    private JavaMailSender javaMailSender;

    @Autowired
    private Configuration config;
    
    public void sendTemplateMessageWithAttachment(SimpleMailMessage simpleMailMessage) {

        try {
            MimeMessage message = javaMailSender.createMimeMessage();

            
            MimeMessageHelper helper = new MimeMessageHelper(
                    message,
                    MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED,
                    StandardCharsets.UTF_8.name());

            Template t = config.getTemplate("email-template.ftl");
            Map model = new HashMap();
            model.put("Name", "StackAbuse Admin");
            model.put("location", "Bangalore, India");
            String html = FreeMarkerTemplateUtils.processTemplateIntoString(t, model);

            
            helper.addAttachment("logo.png", new ClassPathResource("logo.png"));
            helper.setTo(Objects.requireNonNull(simpleMailMessage.getTo()));
            helper.setText(html, true);
            helper.setSubject(Objects.requireNonNull(simpleMailMessage.getSubject()));
            helper.setFrom(Objects.requireNonNull(simpleMailMessage.getFrom()));
            javaMailSender.send(message);

        } catch (MessagingException | IOException | TemplateException e) {
            System.err.println("Exception: " + e.getMessage());
        }
    }

Lõpuks määratleme a Controller kiht dünaamiliste meiliatribuutide edastamiseks:

@RestController
public class EmailController {

    @Autowired
    private EmailService emailService;

    @PostMapping("/sendTemplateEmailWithAttachment")
    public String sendTemplateMessageWithAttachment(@RequestBody EmailDetails emailDetails) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(emailDetails.getFromEmail());
        simpleMailMessage.setTo(emailDetails.getToEmail());
        simpleMailMessage.setSubject(emailDetails.getSubject());
        simpleMailMessage.setText(emailDetails.getBody());
        emailService.sendTemplateMessageWithAttachment(simpleMailMessage);

        return "Email sent successfully";
    }
}

Nüüd, kui käivitame rakenduse ja käivitame järgmise loki, saadab see kinnitatud e-posti aadressile meili:

curl -i -X POST 
   -H "Content-Type:application/json" 
   -d 
'{
  "fromEmail": "[email protected]",
  "toEmail": "[email protected]",
  "subject": "test email",
  "body": "Hi, This is a test template email with attachment."
}' 
 'http://localhost:8080/sendTemplateEmailWithAttachment'

Järgmisena saame sisse logida saaja meiliaadressile ja kontrollida, kas saaja on meili kätte saanud:

Freemarkeri malli meil

Isikupärastatud meilide saatmine AWS SES-i mallide abil

Eelmisel kasutusjuhul kasutasime meilide saatmiseks staatilist malli. Kuidas saaksime võimaldada mallide dünaamilist kujundamist erinevatel eesmärkidel ja erinevat tüüpi adressaatide jaoks? AWS SES võimaldab meil luua meilimalle, et saata isikupärastatud e-kirju ühe toiminguga ühte või mitmesse sihtkohta.

Ühe Amazon SES-i konto kohta saame luua kuni 10,000 500 meilimalli. Iga malli suurus võib olla kuni 50 KB, sealhulgas nii teksti kui ka HTML-i osad. Iga kõnega saame saata kuni XNUMX sihtkohta.

Loome siis kiiresti meilimalli. Esiteks saame JSON-faili määratleda järgmise malli abil:

{
  "Template": {
    "TemplateName": "MyTemplate",
    "SubjectPart": "Greetings from {{name}}!",
    "HtmlPart": "StackAbuse Email


StackAbuse

Sending Email using Spring Cloud with AWS SES Email template !!!

Want to learn a new technology or become an in-demand full-stack developer?

We teach the skills you need to level up in your career.

"Sharing knowledge is the biggest learning"



{{name}}
{{location}}



"
, "TextPart": "Dear {{name}},rnHere is your StackAbuse Email." } }

See mall sisaldab järgmisi atribuute:

  • Malli nimi: see sisaldab malli nime.
  • Teemaosa: see sisaldab meili teemarida. Sellel varal võivad olla asendusmärgendid. Need sildid on vormindatud järgmiselt: {{tagname}}. Saate sisestada väärtuse {{tagname}} iga sihtkoha kohta meili saatmisel.
  • HtmlPart: see sisaldab meili HTML-teksti ja võib sisaldada ka asendusmärgendeid.
  • Tekstiosa: see tähistab meili tekstiosa. See meiliversioon saadetakse adressaatidele, kelle meilikliendid ei näe HTML-meile. Sellel varal võivad olla asendusmärgendid.

Saame selle faili salvestada kui mytemplate.json. Lõpuks saame malli loomiseks kasutada AWS CLI käsku järgmiselt:

$ aws ses create-template --cli-input-json file://mytemplate.json

Järgmisena määratleme atribuutide määratlemiseks ja malliga meilide saatmiseks teenusekihi:

@Service
public class EmailService {

    @Autowired
    private AmazonSimpleEmailService simpleEmailService;

    public void sendTemplatedMessage(SimpleMailMessage simpleMailMessage) {

        Destination destination = new Destination();
        List toAddresses = new ArrayList();
        String[] emails = simpleMailMessage.getTo();
        Collections.addAll(toAddresses, Objects.requireNonNull(emails));
        destination.setToAddresses(toAddresses);

        SendTemplatedEmailRequest templatedEmailRequest = new SendTemplatedEmailRequest();
        templatedEmailRequest.withDestination(destination);
        templatedEmailRequest.withTemplate("MyTemplate");
        templatedEmailRequest.withTemplateData("{ "name":"StackAbuse Admin", "location": "Bangalore, India"}");
        templatedEmailRequest.withSource(simpleMailMessage.getFrom());
        simpleEmailService.sendTemplatedEmail(templatedEmailRequest);
    }
}

Saame lisada mitu Destination aadressid, et saata hulgikirju mitmele adressaadile. Me kasutame sendTemplatedEmail() meetodist AmazonSimpleEmailService liides selle malli meili saatmiseks. Samuti peame oma varem loodud malli HTML-tekstis edastama asendatavad märgendid.

Lõpuks määratleme a Controller kiht, et määratleda REST API atribuutide edastamiseks:

@RestController
public class EmailController {

    @Autowired
    private EmailService emailService;

    @PostMapping("/sendAWSTemplatedEmail")
    public String sendTemplatedMessage(@RequestBody EmailDetails emailDetails) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(emailDetails.getFromEmail());
        simpleMailMessage.setTo(emailDetails.getToEmail());
        simpleMailMessage.setSubject(emailDetails.getSubject());
        simpleMailMessage.setText(emailDetails.getBody());
        emailService.sendTemplatedMessage(simpleMailMessage);

        return "Email sent successfully";
    }
}

Järgmisena saame rakenduse käivitamisel teha järgmist curl mallide saatmiseks:

curl -i -X POST 
   -H "Content-Type:application/json" 
   -d 
'{
  "fromEmail": "[email protected]",
  "toEmail": "[email protected]",
  "subject": "Greetings from StackAbuse Admin",
  "body": "Hi, This is a AWS templated email."
}' 
 'http://localhost:8080/sendAWSTemplatedEmail'

Nüüd näeb adressaat lõpuks malliga meilisõnumit:

Mallitud e-kiri

Taotlege juurdepääsu tootmisele

Lõpuks, selleks, et saata e-kirju ükskõik millisele adressaadile, olenemata sellest, kas saaja aadress või domeen on kinnitatud, peame lõpuks oma konto liivakastist välja võtma. Kõik meie identiteedid, sealhulgas From, Source, Senderja Return-Path aadressid, tuleb siiski kontrollida. Tootmisjuurdepääsutaotluse saame esitada aadressiltKonto juhtpaneel” lehekülg järgmiselt:

Konto juhtpaneel
Taotlege juurdepääsu tootmisele

Saame esitada taotluse, täites kõik ülaltoodud üksikasjad AWS-i konsoolist. Sama saab esitada ka AWS CLI abil. See oleks kasulik, kui peame taotlema juurdepääsu suurele hulgale identiteetidele ja soovime protsessi automatiseerida.

Järeldus

Selles artiklis käsitleti Amazon Simple Email Service'i (SES) peamisi ideid ja Spring Cloud AWS-i pakutavaid teeke sellega liidestamiseks. Lisaks lõime rakenduse Spring Boot koos REST API-ga, mis suudab Spring Cloud AWS SES mooduli kaudu meile saata.

Nüüd peaks teil olema kindel arusaam sellest, mis on Amazon Simple Email Service (SES) ja kuidas seda meilide saatmiseks kasutada.

Ajatempel:

Veel alates Stackabus