Open new Mail on localhost from knime server (with python)

#1

Hello.

I want to open a new mail (i.e. MS Outlook) with Data from the Knime Workflow.

In Knime Analytics i tried a python script which works fine.

Copy input to output

output_table = input_table.copy()
import webbrowser
webbrowser.open("mailto:test@example.com?subject=Hello World")

When the workflow is deployed on the server and startet by a user, there will be a new mail window. But it is opened on the (linux) server.
Is it possible to open the mail window on the localhost?

BR,
Steegg

0 Likes

#2

Hi,

Unfortunately, that is not going to work directly - there is no way to open a new window on the client side that way.

One thing you could try is to add a Send Email node to the workflow, which is then configured via various quickforms in a wrapped metanode.

The email text itfself can be entered via String Input, just as the address you want to send to. Credentials you can pass via credentials input, things like smpt address and port I’d hardcode into the node itself.

The attachment you can pass as a placeholder, e.g. pass a temp file, and when on the WebPortal, the actual file will be appended.

Hope that helps!

1 Like

#3

Hi,

at the moment, is there any possibility to open a python window (e.g. python matplotlib plot) from the server on the localhost?

BR,
ptrwlr

0 Likes

#4

Hi ptrwlr,

There is the Python View node which behaves like any other of KNIME’s viewer nodes. It doesn’t allow to open a Python window, though, but it allows to output and view an image that was generated using matplotlib (or any other way). So this might be an alternative if your matplotlib plot does not need to be interactive.
Other than that, there’s no possibility, I’m afraid.

Marcel

1 Like

#5

Hi MarcelW,

thanks for your suggestion.
But i need an interactive plot.
I want to load only a part of data from a mat-file (hdf5) and plot it interactive.
The user should be able to change the data in the view.
The data should be loaded only when selecting and not all at the beginning of the workflow.

Is there any possibility?

BR,
ptrwlr

0 Likes

#6

You can do this with JavaScript view nodes but you’d need to use a library that’s in JS not python.

If an existing KNIME node doesn’t exist then you could use the Generic JavaScript view and integrate Plotly / D3 / Other. Though I don’t think you can link up the selection logic to output like you can in the inbuilt KNIME JavaScript views.

e.g.

2 Likes