2010-07-27 15 views
1

메일을받을 때마다 이메일을 보내는 프로세스 (Message Driven Bean)가 있습니다. 메시지 당 이메일 수는 10 개 미만입니다. Gmail 계정에 1 개의 연결을 열고 해당 연결을 통해 모든 이메일을 보냅니다. 때때로 Transport.Send()에 대한 예외가 발생합니다.Javamail을 통해 이메일을 보낼 때 gmail이 연결을 닫는 이유

javax.mail.MessagingException: Can't send command to SMTP host; nested exception is:  
    java.net.SocketException: Connection closed by remote host at 
    com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1878) at 
    com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1865) at 
    com.sun.mail.smtp.SMTPTransport.close(SMTPTransport.java:973) at 
    javax.mail.Transport.send0(Transport.java:193) at 
    javax.mail.Transport.send(Transport.java:120) at 
.... 

Gmail은 연결이 스팸이라고 생각하여 연결을 닫습니까? Gmail (10)에 동시 연결 수에 제한이 있다는 것을 알고 있지만 이것은 다른 것처럼 보입니다. 연결 풀을 사용하면 도움이 될까요?

답변

0

TCP/IP 연결에서 Gmail이 종료되거나 그 사이의 방화벽이 연결이 유휴 상태임을 감지하고 닫습니다.

+0

나는 그만큼 생각했다. 그러나 유휴 시간은 없습니다. 연결을 열고 이메일을 보내는 사이의 시간은 30 초 미만입니다. 또한,이 경우가 산발적으로 발생하고 많은 경우 (전체가 아님)에서이 오류가 발생하더라도 실제로 이메일이 전송됩니다. 이 시점에서 SMTP 릴레이 서비스를 사용하는 것을 고려하고 있습니다. – ankimal

관련 문제