如果他忘记了密码,我想向用户发送邮件以重置密码,但出现此错误:
org.springframework.mail.MailSendException:邮件服务器连接
失败嵌套的异常是javax.mail.NoSuchProviderException:否
$ {mail.protocol}的提供商。失败的消息:
javax.mail.NoSuchProviderException:没有$ {mail.protocol}的提供程序;
消息异常详细信息(1)是:
这是我的MailConfiguration.java
;
public class MailConfiguration {
@Value("${mail.protocol}")
private String protocol;
@Value("${mail.host}")
private String host;
@Value("${mail.from}")
private String from;
@Value("${mail.username}")
private String username;
@Value("${mail.password}")
private String password;
@Bean
public JavaMailSender javaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
Properties mailProperties = new Properties();
mailProperties.put(false, auth);
mailProperties.put(false, starttls);
mailSender.setJavaMailProperties(mailProperties);
mailSender.setHost(host);
mailSender.setPort(465);
mailSender.setProtocol(protocol);
mailSender.setUsername(username);
mailSender.setPassword(password);
return mailSender;
}
}
这是我的EmailConfig.properties:
mail.protocol=smtp
mail.host=localhost
mail.port=465
mail.smtp.auth=false
mail.smtp.starttls.enable=false
mail.from=me@localhost
mail.username=
mail.password=
任何帮助预先感谢。
最佳答案
似乎您没有正确连接EmailConfig.properties,因为未从其中读取mailProtocol。
确保配置类中的某个位置具有@PropertySource,并带有指向属性文件的有效路径(即“ classpath:EmailConfig.properties”)