如何配置Quarkus Mailer扩展以支持基于用户的动态发件人邮箱
动态设置Quarkus邮件发件人
你可以通过Mail类的链式方法或setFrom()方法动态指定发件人,这个设置会覆盖配置文件里的默认quarkus.mailer.from值,刚好适配你的业务场景。
修改后的代码可以这样写:
public void sendEmail(EmailSender emailSender) { // Send to each recipient emailMessageRepository.findByEmailSenderId(emailSender.getId()) .forEach(emailMessage -> mailer.send( Mail.withText(emailMessage.getEmail(), emailSender.getSubject(), emailSender.getMessage()) .from(emailSender.getSenderEmail()) // 动态设置发件人 ) ); }
如果更习惯分步构建邮件对象,也可以用这种写法:
public void sendEmail(EmailSender emailSender) { emailMessageRepository.findByEmailSenderId(emailSender.getId()) .forEach(emailMessage -> { Mail mail = Mail.withText(emailMessage.getEmail(), emailSender.getSubject(), emailSender.getMessage()); mail.setFrom(emailSender.getSenderEmail()); // 动态设置发件人 mailer.send(mail); }); }
只要确保EmailSender类包含对应发件人邮箱的字段(比如示例里的senderEmail),就能实现不同用户使用唯一发件人发送邮件的需求。
内容的提问来源于stack exchange,提问作者nkmuturi
相关产品推荐
相关产品推荐

