Почтовый сервис от it.ozimov не видит способ отправки

Я реализовал почтовый сервис из библиотеки it.ozimov. Когда все было импортировано, возникла проблема с методом отправки. Я не могу понять, как он должен быть импортирован, потому что теперь служба не может его увидеть.

Вот это зависимость, которую я прикрепляю

  <dependency>
        <groupId>it.ozimov</groupId>
        <artifactId>spring-boot-email-core</artifactId>
        <version>0.4.2</version>
    </dependency>
    <dependency>
        <groupId>it.ozimov</groupId>
        <artifactId>spring-boot-freemarker-email</artifactId>
        <version>0.4.2</version>
    </dependency>

Вот это сервисный код

@Autowired
public EmailService emailService;

public void sendEmailWithoutTemplating() throws UnsupportedEncodingException {
    final Email email = DefaultEmail.builder()
            .from(new InternetAddress("cicero@mala-tempora.currunt", "Marco Tullio Cicerone "))
            .to(Lists.newArrayList(new InternetAddress("titus@de-rerum.natura", "Pomponius Attĭcus")))
            .subject("Laelius de amicitia")
            .body("Firmamentum autem stabilitatis constantiaeque eius, quam in amicitia quaerimus, fides est.")
            .encoding(String.valueOf(Charset.forName("UTF-8"))).build();

    emailService.send(email);
}

Конечно, я добавил код ниже в свойствах:

    spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=name.surname@gmail.com
spring.mail.password=V3ry_Str0ng_Password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

spring.mail.scheduler.persistence.enabled=false
spring.mail.scheduler.persistence.redis.embedded=false
spring.mail.scheduler.persistence.redis.enabled=false

1 ответ

Сначала обновите зависимости:

<dependency>
    <groupId>it.ozimov</groupId>
    <artifactId>spring-boot-email-core</artifactId>
    <version>0.5.0</version>
</dependency>
<dependency>
    <groupId>it.ozimov</groupId>
    <artifactId>spring-boot-freemarker-email</artifactId>
    <version>0.5.0</version>
</dependency>

Затем установите свойства приложения:

spring.mail.host: smtp.gmail.com
spring.mail.port: 587
spring.mail.username: hari.seldon@gmail.com
spring.mail.password: Th3MuleWh0
spring.mail.properties.mail.smtp.auth: true
spring.mail.properties.mail.smtp.starttls.enable: true
spring.mail.properties.mail.smtp.starttls.required: true

Наконец создать тестовый сервис

package com.test;

import com.google.common.collect.Lists;
import it.ozimov.springboot.mail.model.Email;
import it.ozimov.springboot.mail.model.defaultimpl.DefaultEmail;
import it.ozimov.springboot.mail.service.EmailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.mail.internet.InternetAddress;
import java.io.UnsupportedEncodingException;

import static com.google.common.collect.Lists.newArrayList;

@Service
public class TestService {

    @Autowired
    private EmailService emailService;

    public void sendEmail() throws UnsupportedEncodingException {
        final Email email = DefaultEmail.builder()
                .from(new InternetAddress("hari.seldon@the-foundation.gal",
                        "Hari Seldon"))
                .to(newArrayList(
                        new InternetAddress("the-real-cleon@trantor.gov",
                        "Cleon I")))
                .subject("You shall die! It's not me, it's Psychohistory")
                .body("Hello Planet!")
                .encoding("UTF-8").build();

        emailService.send(email);
    }

}

Обратите особое внимание на импортируемые пакеты.

Наконец, вам нужно включить расширение в вашем главном приложении, используя аннотацию

@EnableEmailTools

Вы можете найти больше в этой статье.

Другие вопросы по тегам