2013-08-22 3 views
0

첨부 된 PDF/Word 문서가 최대 4 개까지 모두 처리 될 때 4 개의 개별 전자 메일을 보내는 양식이 있습니다. 내가 설정 한 방법은 모든 이메일에 spoolenable = "false"를 지정하여 즉시 전송되도록하는 것입니다. 그런 다음 마지막 이메일에서 remove = "true"를 사용하여 첨부 파일을 내 서버에서 삭제합니다. 내가 겪고있는 문제는 내가 도착하기 전에 4 개의 전자 메일 중 2 개만 보내지는 것입니다.ColdFusion 메일 스풀 타임 아웃

java.net.SocketTimeoutException : 읽기 시간이 초과되었습니다.

이 문제를 해결하기 위해 무엇을 할 수 있는지 잘 모르겠지만 제안을 시도해 볼 의향이 있습니다.

감사합니다.

+0

이것은 Java 문제 이상의 서버 문제처럼 보입니다. 양식이 실행되면 소켓을 열고 데이터를 보내는 데 오랜 시간이 걸립니까? 대부분의 서버는 데이터가 전송되지 않을 때 소켓을 닫기 전에 오랫동안 활성 상태로 유지합니다. 연결을 오래 유지하기 위해 설정할 수있는 옵션이 있는지 확인할 수 있습니다. – Shrike

답변

1

이렇게하면 spoolenable = "false"를 잘못 사용하게됩니다. 그 설정은 내장 된 메일 스풀러를 즉시 우회하도록 보낼 이메일을 설정합니다. 이렇게하면 이메일을 보낼 때까지 클라이언트 요청을 기다려야합니다. 이것은 이제 CF 서버가 실제로 이메일을 보낼 때까지 기다려야하는 시스템 사용자에게 영향을 미칩니다. 이제 클라이언트 요청에 잠재적 인 오류 지점이 추가되고 다른 문제가 발생할 수 있습니다.

스풀을 피하려면 메일에 cfthread를 보내야합니다. 이렇게하면 메일을 보낼 때 클라이언트에 영향을 미치지 않습니다.

+0

글쎄, spoolenable을 false로 설정 한 이유는 내 이메일 첨부 파일이 4 개의 다른 이메일에 첨부되어 있기 때문에 모든 메일이 처리 될 때까지 삭제할 수 없기 때문입니다. 전자 메일을 스풀링하고 마지막 전자 메일에서 remove = "true"를 사용하여 첨부 파일을 삭제하거나 전자 메일을 실제로 보내기 전에 cffile을 사용하여 첨부 파일을 삭제하는 경우가 있습니다. cfthread로 보내면이 문제가 해결 될까요? – dukedevil294

+0

아마도 나는 이메일을 스풀링 한 다음 매일 밤 들어와 해당 폴더를 비우는 작업을 예약 할 수 있습니다. 나는 이것이 아마도 두 가지 아이디어 모두에서 타협하는 가장 좋은 방법이라고 생각합니다. – dukedevil294

+1

파일 삭제가 걱정되는 경우 파일을 다르게 처리해야합니다. 임시로 어딘가에 저장 한 다음 나중에 삭제하는 프로세스가 있습니다. 그러면 이메일을 스풀링하여 사용자에게 영향을주지 않아도됩니다. –