2016-05-05 4 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) 

これは電子メールの送信に使用されるコードです。 localhostのTomcat 7で動作しますが、OpenShiftのTomcat 7では動作しません。 しかし、JBoss Application Server 7はOpenShift上で動作します。 これはなぜ起こっているのですか?JavaMailはJBOSS Application Server 7と連携しますが、OpenShiftのTomcat7では動作しません。

答えて

0

Sign-in Has Been PreventedというGoogleからのメールを受け取ったはずです。これはnew device/application from remote locationでログインしようとしているときに発生します。 Googleセキュリティ設定を更新する必要がある場合があります。

続きを読むthis link

+0

私は受け取った!私はセキュリティオプションを少なくしてセキュリティを変更しました。これはOpenshiftとlocalhost Tomcat 7のJBOSS AS7で動作しますが、OpenShiftからTomcat 7を解決しませんでした。 Gmailのサーバーをyahooで変更したので、Googleの考えには問題がありました。 –

+0

@RaduBurlacu、私も前に同じ問題に直面しています。私はGoogleのセキュリティ設定を変更して解決しました。あなたの問題を解決したら、答えを親切に受け入れてください。 – Gangaraju

+0

こんにちは@RaduBurlacu、これか何かの答えがあなたの質問を解決したら、[それを受け入れる]ことを検討してください(http://meta.stackexchange.com/q/5234/179419)チェックマークをクリックします。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。 – Gangaraju

関連する問題