Как я могу получать письма с Mailgun в Spring Boot - PullRequest
0 голосов
/ 17 декабря 2018

В основном я хочу получать электронные письма на мою электронную почту, используя запрос REST-POST.Любые направления будут оценены.Я пробую сервис Mailgun, чтобы заставить его работать.Что у меня так далеко:

Email.java:

public class Email {
@NotNull
private String name;

@NotNull
private String email;

@NotNull
private String subject;

@NotNull
private String url;

@NotNull
@Size(min = 10)
private String messageText;


public String getName() {
    return name;
}

public void setName(@NotNull String name) {
    this.name = name;
}

public String getEmail() {
    return email;
}

public void setEmail(@NotNull String email) {
    this.email = email;
}

public String getUrl() {
    return url;
}

public void setUrl(String url) {
    this.url = url;
}

public String getMessageText() {
    return messageText;
}

public void setMessageText(String messageText) {
    this.messageText = messageText;
}

public String getSubject() {
    return subject;
}

public void setSubject(String subject) {
    this.subject = subject;
}
}

application.properties:

    #TO DO: Set the mailgun props here
spring.mail.host=smtp.mailgun.org
spring.mail.port=2525
spring.mail.username=postmaster@sandbox**************************.mailgun.org
spring.mail.password=************************************

EmailConfig.java

@Component
public class EmailConfig {
    @Value("${spring.mail.host}")
    private String host;
    @Value("${spring.mail.port}")
    private int port;
    @Value("${spring.mail.username}")
    private String username;
    @Value("${spring.mail.password}")
    private String password;

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

EmailController.java

@RestController
public class EmailController {

    private EmailConfig emailConfig;

    // this constructor performs autowired DIa
    public EmailController(EmailConfig emailConfig) {
        this.emailConfig = emailConfig;
    }

    @PostMapping("/sendEmail")
    public void sendFeedback() {
        // create mail sender

        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
        mailSender.setHost(this.emailConfig.getHost());
        mailSender.setPort(this.emailConfig.getPort());
        mailSender.setUsername(this.emailConfig.getUsername());
        mailSender.setPassword(this.emailConfig.getPassword());

        // create an email instance

        SimpleMailMessage mailMessage = new SimpleMailMessage();
        // email.getEmail()
        mailMessage.setFrom("admin@sportapp.bg");
        mailMessage.setTo("zirow000@gmail.com");
        // email.getSubject()
        mailMessage.setSubject("Test subject");
        // email.getMessageText()
        mailMessage.setText("Test text !!!");

        // send mail

        mailSender.send(mailMessage);
    }
}

Я буду использовать этот запрос POST в AJAX, чтобы получать вводимые пользователем данные (имя, адрес электронной почты, тема и текст) и получать их в моем gmail.По крайней мере, это то, что я хочу сделать (я надеюсь, что это возможно).Я развернул его на Heroku и сделал пустой запрос POST с Почтальоном.Как я уже сказал, любые указания будут высоко оценены.

1 Ответ

0 голосов
/ 18 декабря 2018

Я решил это, добавив в mailgun маршрут - catchall (), который перенаправляет сообщения в мой gmail.

...