使用Java和Spring Boot发送电子邮件

时间:2019-11-14 19:54:08

标签: spring-boot java-8 javamail

我不熟悉使用Java发送电子邮件。我有一个要从中发送电子邮件的Spring Boot项目。我尝试了互联网上的几个示例。给出我尝试过的两个示例的URL:

https://www.mkyong.com/spring-boot/spring-boot-how-to-send-email-via-smtp/ 
https://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/

但是没有一个工作。谁能说我在这些示例中必须进行哪些自定义以及为使它们起作用而必须更改哪些值?就像我将“地址”更改为要发送电子邮件的地址一样,用户名和密码是什么?他们的用户名和密码是谁?

2 个答案:

答案 0 :(得分:0)

您可以使用Sendgrid API。您每天可以发送100封电子邮件,而无需付费,这是绝对免费的。需要创建Sendgrid帐户并生成API密钥以发送电子邮件。

参考:

https://sendgrid.com/docs/for-developers/sending-email/v3-java-code-example/

答案 1 :(得分:0)

Ogham 库。发送电子邮件的代码很容易编写,您甚至可以使用模板来编写电子邮件的内容。它比其他库更易于使用,因为您不需要处理技术问题(例如在 HTML 中内联图像和样式,它是自动完成的)。 您甚至可以使用 SMTP 服务器在本地测试您的代码,以在通过 SMTP 提供商发送电子邮件之前检查您的电子邮件的结果。 可以使用 SMTP 协议或通过提供程序 API(如 SendGrid)发送电子邮件。 它与 Spring Boot 兼容,更易于使用,因为您不需要实例化服务。

package fr.sii.ogham.sample.springboot.email;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.PropertySource;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

import fr.sii.ogham.core.exception.MessagingException;
import fr.sii.ogham.core.service.MessagingService;
import fr.sii.ogham.email.message.Email;

@SpringBootApplication
@PropertySource("application-email-basic.properties")   // just needed to be able to run the sample
public class BasicSample {

    public static void main(String[] args) throws MessagingException {
        SpringApplication.run(BasicSample.class, args);
    }
    
    @RestController
    public static class EmailController {
        // Messaging service is automatically created using Spring Boot features
        // The configuration can be set into application-email-basic.properties
        // The configuration files are stored into src/main/resources
        @Autowired
        MessagingService messagingService;
    
        @PostMapping(value="api/email/basic")
        @ResponseStatus(HttpStatus.CREATED)
        public void sendMail(@RequestParam("subject") String subject, @RequestParam("content") String content, @RequestParam("to") String to) throws MessagingException {
            // send the email using fluent API
            messagingService.send(new Email()
                                    .subject(subject)
                                    .body().string(content)
                                    .to(to));
        }
    }

}

还有许多其他的 featuressamples / spring samples