one bad email failing whole email with LABKEY.Message

LabKey Support Forum (Inactive)
one bad email failing whole email with LABKEY.Message Ben Bimber  2011-09-23 10:44
Status: Closed
 
from within a validation script I am sending emails using LABKEY.Message. I'm trying to send it a lot of emails. one of them is failing for some reason (it's a valid labkey user, but it's possible the email itself isnt valid).

below is the error. does it provide any information that says whether labkey is the source of the error or whether the SMTP server is rejecting it?

if labkey is what's rejecting it, can i add some flag that forces the email to continue even if one of the emails is bad?

javax.mail.SendFailedException: Invalid Addresses;
  nested exception is:
    com.sun.mail.smtp.SMTPAddressFailedException: 550 5.1.1 <emailRemoved@primate.wisc.edu>... User unknown

    at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1835)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1098)
    at javax.mail.Transport.send0(Transport.java:195)
    at javax.mail.Transport.send(Transport.java:124)
    at org.labkey.api.util.MailHelper.send(MailHelper.java:174)
    at org.labkey.announcements.SendMessageAction.execute(SendMessageAction.java:120)
    at org.labkey.announcements.SendMessageAction.execute(SendMessageAction.java:52)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:147)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:98)
    at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:166)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:346)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:765)
    at org.labkey.api.view.ViewServlet.mockDispatch(ViewServlet.java:504)
    at sun.reflect.GeneratedMethodAccessor601.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
    at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
    at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
    at org.mozilla.javascript.gen.scripts_labkey_adapter_bridge_js_8._c_mockRequest_5(scripts/labkey/adapter/bridge.js:58)
    at org.mozilla.javascript.gen.scripts_labkey_adapter_bridge_js_8.call(scripts/labkey/adapter/bridge.js)
    at org.mozilla.javascript.optimizer.OptRuntime.callName(OptRuntime.java:97)
    at org.mozilla.javascript.gen.scripts_labkey_adapter_bridge_js_8._c_anonymous_6(scripts/labkey/adapter/bridge.js:85)
    at org.mozilla.javascript.gen.scripts_labkey_adapter_bridge_js_8.call(scripts/labkey/adapter/bridge.js)
    at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:86)
    at org.mozilla.javascript.gen.scripts_Ext_js_7._c_anonymous_104(scripts/Ext.js:2119)
    at org.mozilla.javascript.gen.scripts_Ext_js_7.call(scripts/Ext.js)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
    at org.mozilla.javascript.gen.scripts_labkey_Ajax_js_9._c_anonymous_2(scripts/labkey/Ajax.js:51)
    at org.mozilla.javascript.gen.scripts_labkey_Ajax_js_9.call(scripts/labkey/Ajax.js)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
    at org.mozilla.javascript.gen.scripts_labkey_Message_js_11._c_anonymous_2(scripts/labkey/Message.js:165)
    at org.mozilla.javascript.gen.scripts_labkey_Message_js_11.call(scripts/labkey/Message.js)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
    at org.mozilla.javascript.gen.scripts_ehr_validation_js_17._c_anonymous_29(scripts/ehr/validation.js:843)
    at org.mozilla.javascript.gen.scripts_ehr_validation_js_17.call(scripts/ehr/validation.js)
    at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
    at org.mozilla.javascript.gen.queries_study_Deaths_js_382._c_onComplete_2(queries/study/Deaths.js:35)
    at org.mozilla.javascript.gen.queries_study_Deaths_js_382.call(queries/study/Deaths.js)
    at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:86)
    at org.mozilla.javascript.gen.scripts_ehr_validation_js_17._c_complete_8(scripts/ehr/validation.js:170)
    at org.mozilla.javascript.gen.scripts_ehr_validation_js_17.call(scripts/ehr/validation.js)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:426)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3161)
    at org.mozilla.javascript.gen.scripts_ehr_validation_js_17.call(scripts/ehr/validation.js)
    at org.labkey.api.script.RhinoScriptEngine.invokeMethod(RhinoScriptEngine.java:265)
    at org.labkey.api.script.RhinoEngine.invokeMethod(RhinoService.java:632)
    at org.labkey.api.script.ScriptReferenceImpl.invokeFn(RhinoService.java:361)
    at org.labkey.api.data.AbstractTableInfo.invokeTableScript(AbstractTableInfo.java:923)
    at org.labkey.api.data.AbstractTableInfo.fireBatchTrigger(AbstractTableInfo.java:947)
    at org.labkey.api.query.AbstractQueryUpdateService.insertRows(AbstractQueryUpdateService.java:113)
    at org.labkey.study.query.DatasetUpdateService.insertRows(DatasetUpdateService.java:69)
    at org.labkey.query.controllers.QueryController$CommandType$1.saveRows(QueryController.java:2610)
    at org.labkey.query.controllers.QueryController$BaseSaveRowsAction.executeJson(QueryController.java:2769)
    at org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:2826)
    at org.labkey.query.controllers.QueryController$InsertRowsAction.execute(QueryController.java:2819)
    at org.labkey.api.action.ApiAction.handlePost(ApiAction.java:147)
    at org.labkey.api.action.ApiAction.handleRequest(ApiAction.java:98)
    at org.labkey.api.action.BaseViewAction.handleRequestInternal(BaseViewAction.java:166)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.labkey.api.action.SpringActionController.handleRequest(SpringActionController.java:346)
    at org.labkey.api.module.DefaultModule.dispatch(DefaultModule.java:765)
    at org.labkey.api.view.ViewServlet.service(ViewServlet.java:164)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.data.TransactionFilter.doFilter(TransactionFilter.java:36)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.core.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:118)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.module.ModuleLoader.doFilter(ModuleLoader.java:684)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.labkey.api.security.AuthFilter.doFilter(AuthFilter.java:143)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:581)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:662)
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 550 5.1.1 <emailRemoved@primate.wisc.edu>... User unknown
 
 
jeckels responded:  2011-09-23 10:48
Hi Ben,

This error is from the SMTP server itself. It's not clear from the message itself what is rejecting the recipient, but the stack indicates that it's gotten to com.sun.mail.smtp.SMTPTransport.rcptTo(), which means it was talking to the STMP server.

Thanks,
Josh