title: Jenkins Email Authentication
body: <p>Tried using GMAIL with my own domain name e.g <strong>username@mydomain.com</strong> (on gmail) and my own <strong>username@gmail.com</strong>.</p>
  
  <p>The settings I used are:</p>
  
  <pre><code>SMTP SERVER: smtp.gmail.com 
  USERNAME: username@gmail.com / username@mydomain.com
  PASSWORD: password
  USE SSL: checked
  PORT: 465
  Reply-to-address: noreply@gmail.com
  Charset: UTF-8
  </code></pre>
  
  <p>I keep getting the same error for both cases and I'm positive I'm typing in my password correctly. I visited the link given below and logged in to my gmail account from the machine which is hosting jenkins but I still run into this AuthenticaionFailedException.</p>
  
  <pre><code>Failed to send out e-mail
  
  javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted. Learn more at
  535 5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257 zv11sm652492obb.24 - gsmtp
  
  at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:809)
  at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:752)
  at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:669)
  at javax.mail.Service.connect(Service.java:317)
  at javax.mail.Service.connect(Service.java:176)
  at javax.mail.Service.connect(Service.java:125)
  at javax.mail.Transport.send0(Transport.java:194)
  at javax.mail.Transport.send(Transport.java:124)
  at hudson.tasks.Mailer$DescriptorImpl.doSendTestMail(Mailer.java:519)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:622)
  at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
  at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
  at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
  at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)
  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
  at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
  at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
  at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
  at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
  at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
  at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
  at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
  at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
  at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
  at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
  at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
  at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
  at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
  at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
  at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
  at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:79)
  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
  at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
  at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
  at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
  at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
  at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
  at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
  at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
  at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
  at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
  at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
  at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
  at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
  at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
  at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
  at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
  at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
  at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
  at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
  at org.eclipse.jetty.server.Server.handle(Server.java:370)
  at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
  at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
  at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
  at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
  at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
  at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
  at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
  at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
  at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  at java.lang.Thread.run(Thread.java:701)
  </code></pre>