我需要创建一个具有以下结构的bean:
@Bean
public JavaMailSender getSender() {
JavaMailSender jms = new JavaMailSenderImpl();
// here I need somehow to set up to object sender's email, password, subject, port ...
return jms;
}
当我从上下文中获取bean时,我需要设置对象以及除了body内容之外的所有属性,我将设置它。是否可以这样做,如果是这样的话?
答案 0 :(得分:0)
Spring的JavaMailSender
接口不会强制实现提供主机,端口和其他SMTP信息。但是,implementing class JavaMailSenderImpl
之一提供了这些方法。
所有,您需要做的是将变量jms
的类型更改为JavaMailSenderImpl
,调用setter然后返回它。
@Bean
public JavaMailSender getJavaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.gmail.com");
mailSender.setPort(587);
mailSender.setUsername("my.gmail@gmail.com");
mailSender.setPassword("password");
Properties props = mailSender.getJavaMailProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.debug", "true");
return (JavaMailSender)mailSender;
}