У меня проблемы с настройкой JavaMailSender
для создания и отправки электронного письма.Мое весеннее пакетное задание выполняет sendEmailStep
, но никогда не создает сообщение электронной почты
Вот части, которые у меня есть.
InstanceTestBatchConfiguration.java
ВВ этой конфигурации я настроил 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