我很难配置一个JavaMailSender来创建和发送电子邮件。我的Spring批处理作业执行sendEmailStep,但从不创建电子邮件消息
这是我的作品。
InstanceTestBatchConfiguration.java
在这个Config中,我设置了一个调用tasklet的sendEmailStep
@Configuration
@EnableBatchProcessing
public class InstanceTestBatchConfiguration {
// tag::jobstep[]
@Bean(name = "mccINSTANCETESTjob")
public Job mccOrz004job(JobBuilderFactory jobFactory, //
@Qualifier("instanceTestSetupStep") Step orz004SetupStep, //
@Qualifier("callM204Step") Step callM204Step, //
@Qualifier("sendEmailStep") Step sendEmailStep, //
@Autowired SingleInstanceListener listener) { //
return jobFactory.get("mccINSTANCETESTjob") //
.incrementer(new RunIdIncrementer()) //
.start(orz004SetupStep) //
.next(sendEmailStep) //
.next(callM204Step) //
.build();
}
@Bean(name = "instanceTestSetupStep")
public Step instanceTestSetupStep(StepBuilderFactory stepFactory, InstanceTestSetupTasklet task) {
return stepFactory.get("instanceTestSetupStep") //
.tasklet(task) //
.allowStartIfComplete(true).build();
}
// end::jobstep[]
}SendEmailTasklet.java这里我设置了一个要发送的电子邮件示例
@Component
public class SendEmailTasklet implements Tasklet {
final static Logger LOGGER = LoggerFactory.getLogger(SendEmailTasklet.class);
@Autowired
public JavaMailSender emailSender;
@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo("exampleemail@google.com");
message.setSubject("Hello world");
message.setText("This is a test email");
emailSender.send(message);
return RepeatStatus.FINISHED;
}
}application.properties --我设置了以下字段,但忽略了它们
spring.mail.host=xxx
spring.mail.port=xxx
#spring.mail.username=xxxx@xxx.com
#spring.mail.password=xxxx
spring.mail.properties.mail.smtp.auth=false发布于 2019-01-31 16:28:46
不介意,它起作用了。我已经设置了一个像MailHog这样的邮件服务来处理收发邮件,而且它没有配置为释放电子邮件
https://stackoverflow.com/questions/54464500
复制相似问题