我正在做一个学校项目,我试图在创建帐户时发送一封验证电子邮件,但我不断收到一个身份验证错误,即使我的凭据是正确的。
package classesMain;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendingEmail {
private String email;
private String code;
public SendingEmail(String email, String code) {
this.email = email;
this.code = code;
}
public void send() {
String fromEmail ="**MY EMAIL HERE**";
String password="**MY PASSWORD HERE**";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
Authenticator signOn = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(fromEmail,password);
}
};
Session sess = Session.getInstance(props, signOn);
MimeMessage message = new MimeMessage(sess);
try {
message.setFrom(new InternetAddress(fromEmail));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
message.setSubject("Canadian Voting Portal- Email Verification Link");
message.setText("Click on this link to verify your Canadian Voting Portal email."
+ "If you did not request this email please call 1-888-888-8888"
+ "\n\n Link: "+"http://localhost:8080/CapstoneProject/EmailServlet?email="+email+"&code="+code);
Transport.send(message);
System.out.println("Message Sent");
} catch (MessagingException e) {
// TODO Auto-generated catch block
System.out.println("ERROR");
e.printStackTrace();
}
}
}
错误日志:
MySQL JDBC Driver Registered!
Connection made to DB!
ERROR
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 bm35-20020a05620a19a300b006b61b2cb1d2sm57362qkb.46 - gsmtp
at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:965)
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:876)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:780)
at javax.mail.Service.connect(Service.java:388)
at javax.mail.Service.connect(Service.java:246)
at javax.mail.Service.connect(Service.java:195)
at javax.mail.Transport.send0(Transport.java:254)
at javax.mail.Transport.send(Transport.java:124)
at classesMain.SendingEmail.send(SendingEmail.java:54)
at servlets.CreateAccountServlet.doPost(CreateAccountServlet.java:103)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
我尝试了几种不同的身份验证器,但似乎都不起作用!谢谢!
对于任何处于相同情况的人,我都会将我的电子邮件硬编码到密码验证器和电子邮件中。然后,我不得不为“Mail”和“Windows Computer”获取应用程序密码,无论出于何种原因,都必须对其进行硬编码,否则它将无法工作。。不知道为什么,但那是我的解决方案!谢谢
我正在试验Cognito,但我似乎不知道如何让Cognito向用户发送验证电子邮件,让他们验证他们的电子邮件地址。 这是在我的后端服务器中,我从新用户那里收到了用户名、电子邮件和密码。我正在抑制消息操作,因为我不希望用户收到临时密码。相反,我想将密码设置为他们已经提供给我的密码。 然而,用户从未收到验证其电子邮件地址的电子邮件。在用户池配置中,我在“要验证哪些属性”下选择了“电子邮件”我已经在SE
当我注册一个用户,或单击“单击此处请求另一个”时,不会发送验证邮件,尽管它的回答是“一个新的验证链接已发送到您的电子邮件地址”。我检查了我的和文件,并使用tinker和
我试图在用户注册时向其发送电子邮件验证。用户已添加到firebase,但电子邮件未发送。我把错误记录到控制台上,它说: 无法读取未定义的属性“sendEmail验证”
问题内容: 在我的AngularJS Web应用程序之一中,我需要通过向相关人员发送电子邮件来确认密码。如何在AngularJS中实现呢?我是.NET专家,正在使用Visual Studio 2013。 问题答案: 我已经通过网络服务实现了,请参考下面的代码片段 和ajax调用为
我有一张登记表,上面有姓名、电子邮件和密码。注册时,会向用户的电子邮件地址发送一个确认链接。但在发送链接之前,我需要验证电子邮件地址。我使用了: 它显示的任何电子邮件都有效,例如, 我从获得的电子邮件并将其存储在中。 我到底要怎么做才能让它成功?
问题内容: 我有一台在Linux VM上运行的Jenkins服务器。我希望我的Jenkins每次开始构建时都给我发送电子邮件。我已经如下设置了电子邮件服务。由于我在Google帐户中使用2因子身份验证,因此我为Jenkins创建了一个应用密码,但仍然显示“需要身份验证”。我还安装了扩展电子邮件通知插件,并以完全相同的方式设置了相同的结果。有谁知道这里可能是什么问题? 问题答案: 我进行了测试设置,