我看到了类似的问题,但没有一个对我有帮助。我打算使用javaMailSender
发送一封电子邮件。虽然我确信我使用了有效的凭据,但它抱怨我的用户名和密码不正确。因此,以下是属性:
spring.mail.host=smtp.gmail.com
spring.mail.username=myemail@gmail.com
spring.mail.password= mypassword
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.socketFactory.port=465
spring.mail.properties.mail.smtp.socketFactory.class= javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.fallback= false
spring.mail.properties.mail.smtp.ssl.enable=true
然后在sender类中创建一个用于注入的Bean:
@Configuration
public class MailConfig {
@Autowired
JavaMailSender javaMailSender;
@Bean
@ConditionalOnProperty("spring.mail.host")
public SmtpkMailSender getMockMailSender(){
return new SmtpkMailSender(javaMailSender);
}
}
sender类只有一个方法,该方法从以下接口获取:
public interface MailSender {
void sender(String to, String subject,String body);
}
最后,这里是发件人:
public class SmtpkMailSender implements MailSender {
static Log log=LogFactory.getLog(MailSender.class);
JavaMailSender javaMailSender;
public SmtpkMailSender(JavaMailSender javaMailSender){
this.javaMailSender=javaMailSender;
}
public void sender(String to, String subject,String body){
MimeMessage message=javaMailSender.createMimeMessage();
try {
MimeMessageHelper helper=new MimeMessageHelper(message,true);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(body);
javaMailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
既然我对你的事不确定
请myemail@gmail.com和密码
我转到链接https://myaccount.google.com/u/1/lesssecureapps?pageId=none并将其设置为***上的***,但它仍然抱怨以下错误:
错误如下:
javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/?p=BadCredentials n29sm260426lfi.27 - gsmtp
2条答案
按热度按时间d4so4syb1#
请尝试重新设置您的电子邮件密码,并尝试使用新密码登录。另外,请确保您的用户名(电子邮件地址)的结尾是
@gmail.com
。另外,请确保您的用户名和密码都是字符串(用引号表示)。示例:
efzxgjgh2#
我也遇到了同样的问题,因为我正在使用的生成密码停止工作。我不得不去重新生成新的应用程序密码在我的谷歌帐户,这是16。
然后把16值作为密码,它的工作。