簡體   English   中英

使用 java 發送 email:AuthenticationFailedException:不接受用戶名和密碼

[英]Sending email with java: AuthenticationFailedException: Username and Password not accepted

我看到了類似的問題,但沒有一個對我有幫助。 我將使用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

然后在發送方 class 中制作一個 Bean 進行注入:

@Configuration
public class MailConfig {

    @Autowired
    JavaMailSender javaMailSender;

    @Bean
    @ConditionalOnProperty("spring.mail.host")
    public SmtpkMailSender getMockMailSender(){
        return new SmtpkMailSender(javaMailSender);
    }

}

發送方 class 只有一種方法,可以從以下接口獲取:

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();
        }
    }

}

因為我很確定

spring.mail.username=myemail@gmail.com spring.mail.password= mypassword

我轉到鏈接https://myaccount.google.com/u/1/lesssecureapps?pageId=none並將其設置為on但它仍然抱怨以下錯誤:

這是錯誤:

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

嘗試重置您的電子郵件密碼,然后嘗試使用新密碼登錄。 另外,請確保您的用戶名(電子郵件地址)末尾帶有@gmail.com 另外,請確保您的用戶名和密碼為字符串(如引號所示)。

例:

spring.mail.username = "myemail@gmail.com"
spring.mail.password= "mypassword"

我也遇到了同樣的問題,因為我使用的生成密碼停止工作。 我不得不 go 在我的谷歌帳戶中重新生成新的應用程序密碼,即 16。

新應用密碼生成

然后將 16 值作為密碼,它就可以工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM