0

この問題のトラブルシューティングを何度も試みましたが、最後の手段としてここに投稿しました。私を助けてください!

問題: メイン メソッドからクラスを呼び出してメールを送信できます。Struts2 Action クラスから同じクラスを呼び出そうとすると、電子メールが送信されず、以下のエラーが発生します。Jboss EAP 7.0.0.Alpha1 を使用しています。問題は JBoss の設定にあるのではないかと思います。Standalone-full.xml ファイルも変更しました (standalone-full.xml を使用しており、他の Web コンポーネントは正常に動作していることに注意してください)。デバッグ モードで実行したところ、すべての値が入力されていることがわかりました。struts2 アクション クラスから実行すると、メッセージは送信されません。

Standalone-full.xml に加えられた変更:

<mail-session name="java:jboss/mail/Default" 
        from="somedummyuser@gmail.com" jndi-       
        name="java:jboss/mail/Default">

           <smtp-server password="******" username="somedummyuser" 
                 ssl="true" outbound-socket-binding-ref="mail-smtp"/>
        </mail-session>
    </subsystem>

     <outbound-socket-binding name="mail-smtp">
        <remote-destination host="smtp.gmail.com" port="465"/>
     </outbound-socket-binding>

Java コード:

  public class SendEmail {  

       private MailSender mailSender;

       public void setMailSender(MailSender mailSender) {  
       this.mailSender = mailSender;  
      }  

       public void sendMail(String from, String to, String subject, String   
       msg) 
       throws Exception,NamingException{  
      //creating message  
      SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); 
      simpleMailMessage.setFrom(from);  
      simpleMailMessage.setTo(to);  
      simpleMailMessage.setSubject(subject);  
      simpleMailMessage.setText(msg);  
      //sending message  
      System.out.println("SimpleMailMessage object:"+simpleMailMessage);
      mailSender.send(simpleMailMessage);     
    }  

 }

上記のコード findE を実行し、電子メールを正常に送信する MainMethod を持つクラス:

public class MainMethod_SendEmail {

 public static void main(String[] args) throws Exception{  

    Resource r=new ClassPathResource("webApplicationContext.xml");  
    BeanFactory b=new XmlBeanFactory(r);  
    SendEmail m=(SendEmail)b.getBean("sendEmail");  

    String sender = AccessPropertiesUtil.getInstance().getProperty("from");
    String receiver = AccessPropertiesUtil.getInstance().getProperty("to");
    String subject =    
     AccessPropertiesUtil.getInstance().getProperty("subject");
    String message = 
    AccessPropertiesUtil.getInstance().getProperty("message");

    m.sendMail(sender, receiver, subject, message);

    System.out.println("success");  
    }  

}

しかし、同じメール送信コードが Struts2 アクション クラスから実行されていません: Struts2Action クラス:

     public String execute()
    {
     emailSending();
    }

     private void emailSending() throws Exception
    {
        System.out.println("Sending Email");
        String sender = 
         AccessPropertiesUtil.getInstance().getProperty("from");
        String receiver = 
         AccessPropertiesUtil.getInstance().getProperty("to");
        String subject = 
         AccessPropertiesUtil.getInstance().getProperty("subject");
        String message = 
         AccessPropertiesUtil.getInstance().getProperty("message");

        sendEmail.sendMail(sender, receiver, subject, message);

        }




Error Trace:
     org.springframework.mail.MailSendException: Mail server connection 
    failed;     
    nested exception is javax.mail.MessagingException: Could not  
    connect to SMTP host: smtp.gmail.com, port: 465, response: -1. Failed 
    messages:   javax.mail.MessagingException: Could not connect to SMTP 
    host: smtp.gmail.com, port: 465, response: -1; message exception details 
    (1) are:
    2016-07-13 02:45:33 ERROR stderr:71 - Failed message 1:
    2016-07-13 02:45:33 ERROR stderr:71 - javax.mail.MessagingException: 
    Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1
    2016-07-13 02:45:33 ERROR stderr:71 -   at 
    com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2042)
    2016-07-13 02:45:33 ERROR stderr:71 -   at   
    com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:697)
    2016-07-13 02:45:33 ERROR stderr:71 -   at  
    javax.mail.Service.connect(Service.java:364)
4

0 に答える 0