2016-05-05 6 views
1
package com.example.web; 

    import java.io.*; 
    import java.util.*; 
    import javax.servlet.*; 
    import javax.servlet.annotation.WebServlet; 
    import javax.servlet.http.*; 
    import javax.mail.*; 
    import javax.mail.internet.*; 
    import javax.activation.*; 
    import javax.annotation.Resource; 

    @WebServlet("/SendMail") 
    public class SendMail extends HttpServlet { 

     protected void doPost(HttpServletRequest request, HttpServletResponse response) 
       throws ServletException, IOException { 

      String host = "smtp.gmail.com"; 
      String from = "email"; 
      String pass = "password"; 

      Properties props = System.getProperties(); 
      props.put("mail.smtp.starttls.enable", "true"); 
      props.put("mail.smtp.host", host); 
      props.put("mail.smtp.user", from); 
      props.put("mail.smtp.password", pass); 
      props.put("mail.smtp.port", "587"); 
      props.put("mail.smtp.auth", "true"); 
      props.put("mail.debug", "true"); 

      Session session = Session.getInstance(props, new GMailAuthenticator(from, pass)); 

      response.setContentType("text/html"); 
      PrintWriter out = response.getWriter(); 

      try { 

       MimeMessage message = new MimeMessage(session); 


       message.setFrom(new InternetAddress(from,"Magazin Online")); 
       message.addRecipient(Message.RecipientType.TO, new InternetAddress(request.getParameter("send_to"))); 

       message.setSubject("Test Email"); 
       message.setText(request.getParameter("message")); 

       // Send message 
       Transport.send(message); 
       out.println("message sent"); 
      } catch (MessagingException mex) { 
       mex.printStackTrace(); 
      } 
     } 

    } 

javax.mail.AuthenticationFailedException 
     at javax.mail.Service.connect(Service.java:319) 
     at javax.mail.Service.connect(Service.java:169) 
     at javax.mail.Service.connect(Service.java:118) 
     at javax.mail.Transport.send0(Transport.java:188) 
     at javax.mail.Transport.send(Transport.java:118) 
     at com.example.web.SendMail.doPost(SendMail.java:49) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
     at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683) 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1042) 
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
     at java.lang.Thread.run(Thread.java:745) 

Dieser Code wird zum Senden von E-Mails verwendet. Es funktioniert auf Tomcat 7 von localhost, aber es funktioniert nicht auf Tomcat 7 von OpenShift. Aber es funktioniert mit JBOSS Application Server 7 auf OpenShift. Weiß jemand, warum passiert das?JavaMail arbeitet mit JBOSS Application Server 7, arbeitet aber nicht mit Tomcat7 unter OpenShift

Antwort

0

Sie sollten eine E-Mail von Google erhalten haben, die besagt, dass Sign-in Has Been Prevented. Dies passiert, wenn Sie versuchen, sich in einem new device/application from remote location einzuloggen. Möglicherweise müssen Sie die Google-Sicherheitseinstellungen aktualisieren, damit es funktioniert.

Lesen Sie mehr unter this link

+0

Ich habe erhalten! Und ich änderte die Sicherheit mit weniger Sicherheitsoptionen. Dies macht es für JBOSS AS7 von Openshift und localhost Tomcat 7. Aber hat den Tomcat 7 von OpenShift nicht gelöst. Es ist ein Problem mit Google gedacht, weil ich den Google Mail-Server mit Yahoo geändert habe und es funktioniert. –

+0

@RaduBurlacu, ich habe auch das gleiche Problem zuvor gesehen. Ich habe es gelöst, indem ich die Google-Sicherheitseinstellungen geändert habe. Bitte akzeptieren/upvote die Antwort, wenn es Ihr Problem löst – Gangaraju

+0

Hallo @RaduBurlacu, wenn diese oder jede Antwort Ihre Frage gelöst hat, beachten Sie bitte [akzeptieren] (http://meta.stackexchange.com/q/5234/179419) durch Klicken Sie auf das Häkchen. Dies zeigt der breiteren Gemeinschaft, dass Sie eine Lösung gefunden haben und sowohl dem Antworter als auch Ihnen einen guten Ruf verschaffen. Es besteht keine Verpflichtung, dies zu tun. – Gangaraju

Verwandte Themen