Send Mail with Excel file attachment

Hi, i am using this code

table = system.tag.read('Test/dataset').value
excelstr = system.dataset.dataSetToExcel(True,[table.data])
excelbytes = excelstr.encode("UTF8")
fileName = "myexcelfile.xls"

smtp = "my test"
sender = "myemail@mycompany.com"
subject = "Here is the file you requested"
body = "Hello, this is an email."
recipients = ["test@company.com"]
system.net.sendEmail(smtp, sender, subject, body,0, recipients, [fileName], [excelbytes])

But getting this error

Java Traceback:
Traceback (most recent call last):
  File "<input>", line 12, in <module>
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:325)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendEmail(GatewayInterface.java:684)

	at com.inductiveautomation.ignition.client.script.ClientNetUtilities._sendEmail(ClientNetUtilities.java:55)

	at com.inductiveautomation.ignition.common.script.builtin.AbstractNetUtilities.sendEmail(AbstractNetUtilities.java:170)

	at jdk.internal.reflect.GeneratedMethodAccessor109.invoke(Unknown Source)

	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

	at java.base/java.lang.reflect.Method.invoke(Unknown Source)

com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Error sending email. Session id=31311430


	at org.python.core.Py.JavaError(Py.java:547)

	at com.inductiveautomation.ignition.client.script.ClientNetUtilities._sendEmail(ClientNetUtilities.java:58)

	at com.inductiveautomation.ignition.common.script.builtin.AbstractNetUtilities.sendEmail(AbstractNetUtilities.java:170)

	at jdk.internal.reflect.GeneratedMethodAccessor109.invoke(Unknown Source)

	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

	at java.base/java.lang.reflect.Method.invoke(Unknown Source)

	at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:190)

	at com.inductiveautomation.ignition.common.script.ScriptManager$ReflectedInstanceFunction.__call__(ScriptManager.java:541)

	at org.python.core.PyObject.__call__(PyObject.java:433)

	at org.python.core.PyObject.__call__(PyObject.java:437)

	at org.python.pycode._pyx188.f$0(<input>:12)

	at org.python.pycode._pyx188.call_function(<input>)

	at org.python.core.PyTableCode.call(PyTableCode.java:173)

	at org.python.core.PyCode.call(PyCode.java:18)

	at org.python.core.Py.runCode(Py.java:1687)

	at org.python.core.Py.exec(Py.java:1731)

	at org.python.util.PythonInterpreter.exec(PythonInterpreter.java:277)

	at org.python.util.InteractiveInterpreter.runcode(InteractiveInterpreter.java:130)

	at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:611)

	at com.inductiveautomation.ignition.designer.gui.tools.jythonconsole.JythonConsole$ConsoleWorker.doInBackground(JythonConsole.java:599)

	at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)

	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)

	at java.desktop/javax.swing.SwingWorker.run(Unknown Source)

	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

	at java.base/java.lang.Thread.run(Unknown Source)

Caused by: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Error sending email. Session id=31311430

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:325)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendEmail(GatewayInterface.java:684)

	at com.inductiveautomation.ignition.client.script.ClientNetUtilities._sendEmail(ClientNetUtilities.java:55)

	... 24 more

Caused by: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: SG SMTP, 25; timeout 10000;
  nested exception is:
	java.net.UnknownHostException: SG SMTP

	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2053)

	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:697)

	at javax.mail.Service.connect(Service.java:364)

	at javax.mail.Service.connect(Service.java:245)

	at javax.mail.Service.connect(Service.java:194)

	at javax.mail.Transport.send0(Transport.java:253)

	at javax.mail.Transport.send(Transport.java:124)

	at com.inductiveautomation.ignition.gateway.script.GatewayNetUtilities.sendEmail(GatewayNetUtilities.java:250)

	at com.inductiveautomation.ignition.gateway.script.GatewayNetUtilities.sendEmail(GatewayNetUtilities.java:124)

	at com.inductiveautomation.ignition.gateway.servlets.Gateway.sendEmail(Gateway.java:1196)

	at com.inductiveautomation.ignition.gateway.servlets.Gateway.doPost(Gateway.java:492)

	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)

	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

	at com.inductiveautomation.ignition.gateway.bootstrap.MapServlet.service(MapServlet.java:86)

	at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1450)

	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)

	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)

	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)

	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)

	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)

	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)

	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)

	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)

	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)

	at com.inductiveautomation.catapult.handlers.RemoteHostNameLookupHandler.handle(RemoteHostNameLookupHandler.java:121)

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)

	at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)

	at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59)

	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)

	at org.eclipse.jetty.server.Server.handle(Server.java:516)

	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)

	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)

	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)

	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)

	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)

	at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555)

	at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410)

	at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164)

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)

	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)

	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)

	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)

	at java.lang.Thread.run(null)

Traceback (most recent call last):
  File "<input>", line 12, in <module>
	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.newGatewayException(GatewayInterface.java:351)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendMessage(GatewayInterface.java:325)

	at com.inductiveautomation.ignition.client.gateway_interface.GatewayInterface.sendEmail(GatewayInterface.java:684)

	at com.inductiveautomation.ignition.client.script.ClientNetUtilities._sendEmail(ClientNetUtilities.java:55)

	at com.inductiveautomation.ignition.common.script.builtin.AbstractNetUtilities.sendEmail(AbstractNetUtilities.java:170)

	at jdk.internal.reflect.GeneratedMethodAccessor109.invoke(Unknown Source)

	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

	at java.base/java.lang.reflect.Method.invoke(Unknown Source)

com.inductiveautomation.ignition.client.gateway_interface.GatewayException: com.inductiveautomation.ignition.client.gateway_interface.GatewayException: Error sending email. Session id=31311430

can any one please fix my issue

This has nothing to do with Ignition. Your mailserver is ignoring your gateway, or some other network problem is dropping the packets.

2 Likes

@pturmel

getting this error when i open excel attachement


Is there any way to fix this?

Try changing the extension from xls to csv

getting like this in excel

fileName = "myexcelfile.csv"

table = system.tag.read('[default]Common/Dynamic Report/Report_header_name').value 

fileData = system.dataset.dataSetToExcel(True,[table])

excelbytes = fileData.encode("UTF8")
#fileData = system.file.readFileAsBytes(filePath)

smtp = "test"

smtpProfile = "test.com"

sender = "tes@gmail.com"

subject = "Here is the file you requested"

body = "Hello, this is an email."

recipients = ["test@gamil.com]

system.net.sendEmail(smtp,sender, subject, body,1, recipients, [fileName], [excelbytes],smtpProfile = smtpProfile)

code for your reference


Your picture definitely shows an XML file, but as for the extension, the docs shows xlsx, so I was probably mistaken about csv.


same error

Interesting, but CSV didn't throw the error?

noo its not given error

sending as attachment only i am getting this error.

when i locally save it no error