javax.E-mail.AuthenticationFailedException: 535-5.7.8-Benutzername und Passwort nicht akzeptiert
E-Mail-Dienst-Konfiguration in standalone-full-ha.xml
.
<subsystem xmlns="urn:jboss:domain:mail:2.0">
<mail-session name="default" jndi-name="java:jboss/mail/Default" from="[email protected]">
<smtp-server outbound-socket-binding-ref="mail-smtp" ssl="true" username="User" password="password"/>
</mail-session>
</subsystem>
Die E-mail - Session
wiederum verweist auf einen SMTP-host gebunden an localhost auf port 465.
<outbound-socket-binding name="mail-smtp">
<remote-destination host="smtp.gmail.com" port="465"/>
</outbound-socket-binding>
Das aktuelle Passwort in der Konfiguration verwendet wird ein anwendungsspezifisches Passwort generiert, während "2-Step Verification" auf https://security.google.com/settings/security/apppasswords
Nachdem diese Konfiguration vorgenommen wurde, den Versuch zu senden eine E-Mail mit dem folgenden code wird eine Ausnahme geworfen werden.
@Resource(mappedName = "java:jboss/mail/Default")
private Session mailSession;
public void init() throws AddressException, MessagingException {
MimeMessage m = new MimeMessage(mailSession);
Address from = new InternetAddress("[email protected]");
Address[] to = new InternetAddress[]{new InternetAddress("[email protected]")};
m.setFrom(from);
m.setRecipients(Message.RecipientType.TO, to);
m.setSubject("Message Subject");
m.setSentDate(new Date());
m.setContent("Mail sent from app", "text/html");
Transport.send(m);
}
Folgende Ausnahme ausgelöst.
07:48:36,906 WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (default task-9) #{countryManagedBean.init}: javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/answer/14257 t70sm5413631pfi.8 - gsmtp
: javax.faces.FacesException: #{countryManagedBean.init}: javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/answer/14257 t70sm5413631pfi.8 - gsmtp
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
at javax.faces.component.UIViewAction.broadcast(UIViewAction.java:562)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:78)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
at io.undertow.websockets.jsr.JsrWebSocketFilter.doFilter(JsrWebSocketFilter.java:151)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
at org.omnifaces.facesviews.FacesViewsForwardingFilter.filterExtensionLess(FacesViewsForwardingFilter.java:128)
at org.omnifaces.facesviews.FacesViewsForwardingFilter.doFilter(FacesViewsForwardingFilter.java:89)
at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
at filter.NoCacheFilter.doFilter(NoCacheFilter.java:33)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
at org.omnifaces.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:122)
at org.omnifaces.filter.HttpFilter.doFilter(HttpFilter.java:108)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:72)
at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:282)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:261)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:80)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.faces.el.EvaluationException: javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/answer/14257 t70sm5413631pfi.8 - gsmtp
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
... 57 more
Caused by: javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 https://support.google.com/mail/answer/14257 t70sm5413631pfi.8 - gsmtp
at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:892)
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:814)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:728)
at javax.mail.Service.connect(Service.java:386)
at javax.mail.Service.connect(Service.java:245)
at javax.mail.Service.connect(Service.java:194)
at javax.mail.Transport.send0(Transport.java:253)
at javax.mail.Transport.send(Transport.java:124)
at admin.bean.CountryManagedBean.init(CountryManagedBean.java:81)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.sun.el.parser.AstValue.invoke(AstValue.java:292)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
... 58 more
Mit WildFly 9.0.2 final (die Anwendung mit einem selbst signierten SSL-Zertifikat sollte nicht das Thema sein hier).
Gmail nicht glauben, dass Sie geliefert haben, den korrekten Benutzernamen oder Passwort. Wussten Sie, Folgen Sie dem link in der Fehlermeldung? Haben Sie versucht, all die Dinge, die Google vorschlägt? Was ist passiert?
Ich folgte ab
So... Sie nicht Folgen Sie dem link in der Fehlermeldung?
Ich dem link gefolgt. Ich machte eine falsche Annahme. Das XML-Attribut
Ich folgte ab
https://accounts.google.com/SmsAuthConfig
alle Schritte der Generierung eines Passworts. Es zeigt "2-Schritt-Verifizierung ist:" bei https://accounts.google.com/b/0/SmsAuthSettings#devices
. Copy & eingefügt das generierte Passwort, um die server-Konfigurationsdatei, standalone-full-ha.xml
. Ist es etwas, was fehlt denn da?So... Sie nicht Folgen Sie dem link in der Fehlermeldung?
Ich dem link gefolgt. Ich machte eine falsche Annahme. Das XML-Attribut
username
zugewiesen wurde, der eigentliche Benutzername in der Erwägung, dass es erwartet, dass die Absender der E-Mail-Adresse (die ich davon ausgegangen, dass der Absender die E-Mail-Adresse übereinstimmen sollte, um den Wert der from
XML-Attribut wie der name schon sagt). Mails nach, dass die änderung vorgenommen wurde.
InformationsquelleAutor Tiny | 2016-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist ein Konfigurations-Fehler gemacht, in eine falsche Annahme. Das XML-Attribut
username
erwartet, dass die tatsächliche E-Mail-Adresse, wo Sie den Chat-Namen des entsprechenden Absenders-Konto gegeben wurde, daher die Ausnahme. Es funktioniert gut, nachdem es wurde wie folgt korrigiert.Das aktuelle Passwort, um in der Konfiguration verwendet werden, ist ein anwendungsspezifisches Passwort generiert, während "2-Step Verification" auf
https://security.google.com/settings/security/apppasswords
wie schon in der Frage.Die E-mail-Sitzung
javax.mail.Session
kann dann injiziert werden, in jedem Java-EE-Artefakt wie Servlets, Servlet-Filter, managed beans, EJBs, Message-Driven-Beans (MDB) etc. überjavax.annotation.Resource
annotation.Eine Sache, die nicht passieren für einige aus unbekannten Gründen ist der name des Absenders (label) angegeben, die mit den
from
XML-Attribut. Es schickt immer die Absender der E-Mail-Adresse als Absender-name, die unerwartet ist. Auch zu tun,nicht helfen. Ich folgte einige Muster, wie vorgeschlagen, in diese Antwort aber es hat auch nicht geholfen. Es jedoch funktioniert in Java-SE-Umgebung. Es ist trotzdem eine andere Sache als die aktuelle Frage. Vielleicht Frage ich eine eigene Frage später.
Zusätzliche :
Ich lieber JMS-queues zum versenden von E-mails asynchron als Hintergrundprozess, da das senden einer E-mail verzögert werden kann deutlich für viele Gründe. Die eigentliche Nachricht zusammen mit der Empfänger E-Mail-Adresse geschickt wird, durch eine JMS-Warteschlange und die aktuelle E-mail geliefert wird, um ein Ziel-mail-server von dem empfangenden terminal an der entsprechenden queue wie folgt.
EmailUtil
ist ein Dienstprogramm Java-Klasse halten notwendigen Eigenschaften und die Umsetzung derjava.io.Serializable
- Schnittstelle (die ist zwingend erforderlich für das senden von serialisierbaren Java-Objekten).Um Anstöße für eine
Queue
ich eine Anwendung verwenden, scoped CDI managed bean für eine bessere Wiederverwendbarkeit auf der Vorderseite.Injizieren diese bean in einer beliebigen Java-EE-Artefakt, erstellen Sie eine Instanz der
EmailUtil
manuell mitnew
auf und ruft diesend()
Methode im Auftrag des injizierten proxy-Instanz der managed bean übergeben durch die Instanz derEmailUtil
gebaut.Die Authentifizierung mit
username
/password
wie angegeben mit dercreateConnection()
Methode ist weder notwendig noch@RunAs("ROLE_ADMIN")
bevor das MDB), im Fall der Sicherheit ist deaktiviert /wird nicht verwendet in der hornetq-server in der Konfiguration.Siehe auch :
InformationsquelleAutor Tiny