2017-04-04 3 views
0

이를 보내거나하지 메일을 비롯한 MailService 인터페이스에서 얻는 수익 내가 최근 Grails의 :

if(!toAddress.equalsIgnoreCase("")){ 
      mailService.sendMail { 
       to toAddress 
       subject "This is a test mail" 
       body "Hello, This is a test mail." 
      } 
} 

를 사용하는 코드입니다하지만 난 내가 플러그인에서 볼 수있는 센드 메일

+0

메일을 보내고 있습니까? 이 메소드의 마지막 문장입니까? –

+0

예, 여기에 이메일에 관한 실행이 없으면 –

답변

0

에서 리턴 결과를 얻는 방법을 잘 모릅니다 tests 뭔가 실패하면 그 메소드는 GrailsMailException을 던집니다. 그래서 try-catch를 사용할 수 있습니다 :

try { 
    mailService.sendMail { 
     to toAddress 
     subject "This is a test mail" 
     body "Hello, This is a test mail." 
    } 
} catch(GrailsMailException e) { 
    log.warn('Message failed with exception', e) 
} 
+0

괜찮습니다.하지만 'async' 매개 변수를 사용하고'true '로 설정하면 메일이 스레드로 보내지고 예외는 위의'catch '블록에 걸리게됩니다. 그것에 대한 어떤 해결책? –

+0

플러그인 소스에서 async가 지정된 경우 메시지가 별도의 스레드로 전송됩니다. 그래서 비동기 전송 결과를 확인할 방법이 없다고 생각합니다. https://github.com/kefirfromperm/grails-asynchronous-mail을 살펴 보시기 바랍니다. 이 플러그인은 메시지를 데이터베이스에 저장하므로 메시지 상태를 확인할 수 있습니다. –