我正在尝试使用我的 java 应用程序和 gmail 发送邮件。这是我的配置:
mail:
host: smtp.gmail.com
username: mail@gmail.com
password: password
port: 465
protocol: smtps
Run Code Online (Sandbox Code Playgroud)
但是,不幸的是我收到以下错误:
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 l18-20020a056402345200b0043a5004e714sm3019845edc.64 - gsmtp
at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:947)
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:858)
Run Code Online (Sandbox Code Playgroud)
我已在我的 Gmail 帐户上启用了对安全性较低的应用程序的访问,并且我确信提供的用户名和密码有效。
有人可以帮我弄这个吗?
谢谢
我试图理解德米特定律。这个例子(取自《实用程序员》一书中)让我感到困惑。任务是根据德米特法则确定是否允许显示的方法调用。
public void showBalance(BankAccount acct) {
Money amt = acct. getBalance() ;
printToScreen(amt .printFormat()) ;
}
Run Code Online (Sandbox Code Playgroud)
在回应这个任务时,写到它违反了德墨忒尔定律,但我不明白为什么?根据得墨忒耳定律,对象 O 的方法 M 应该只调用以下方法:
该对象amt是在方法内部本地创建的showBalance(BankAccount acct),我们正在getBalance()根据规则 4 允许对该对象调用方法。这让我感到困惑。