spring boot编写一个发送邮件工具类并进行SMTP配置controller调用工具类并将信息写到action中前端只有一个button按钮点击即可发送
以下是一个简单的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对象发送。在实际应用中,您可能需要使用一个表单来接收这些值
原文地址: http://www.cveoy.top/t/topic/gnIG 著作权归作者所有。请勿转载和采集!