以下是一个简单的Spring Boot邮件发送工具类:

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

@Component
public class EmailUtil {

    @Autowired
    private JavaMailSender mailSender;

    public void sendEmail(String to, String subject, String message) throws MessagingException {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(message, true);
        mailSender.send(mimeMessage);
    }
}

在这个工具类中,我们注入了一个JavaMailSender,它是Spring Boot自带的邮件发送器。然后,我们定义了一个sendEmail方法,可以接收收件人、主题和消息内容,并使用MimeMessageHelper来构造邮件内容。最后,我们使用邮件发送器来发送邮件。

接下来,我们需要在application.properties中配置SMTP:

spring.mail.host=smtp.example.com
spring.mail.port=587
spring.mail.username=yourusername
spring.mail.password=yourpassword
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

这里,我们使用了一个示例SMTP服务器,并提供了用户名和密码,以便进行身份验证。还启用了STARTTLS加密。

最后,我们在控制器中调用EmailUtil并将信息写入操作中:

import javax.mail.MessagingException;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class EmailController {

    @Autowired
    private EmailUtil emailUtil;

    @PostMapping("/sendemail")
    public void sendEmail(@RequestBody EmailRequest request) throws MessagingException {
        emailUtil.sendEmail(request.getTo(), request.getSubject(), request.getMessage());
    }
}

这里,我们定义了一个POST请求/sendemail,它可以接收一个EmailRequest对象,其中包含了收件人、主题和消息内容。然后,我们调用EmailUtil来发送邮件。

最后,我们可以在前端添加一个按钮,以便用户单击时发送邮件:

<button onclick="sendEmail()">Send Email</button>

<script>
function sendEmail() {
  var xhr = new XMLHttpRequest();
  xhr.open("POST", "/sendemail");
  xhr.setRequestHeader("Content-Type", "application/json");
  xhr.send(JSON.stringify({
    to: "john.doe@example.com",
    subject: "Hello",
    message: "This is a test email."
  }));
}
</script>

这里,我们使用了JavaScript来发送POST请求,将收件人、主题和消息内容作为JSON对象发送。在实际应用中,您可能需要使用一个表单来接收这些值

spring boot编写一个发送邮件工具类并进行SMTP配置controller调用工具类并将信息写到action中前端只有一个button按钮点击即可发送

原文地址: http://www.cveoy.top/t/topic/gnIG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录