Configuring mailjet as email provider for Speckle server

I’m still struggling a bit with this. @gjedlicska @iainsproat Is it possible to manually add collaborators to the server without an email invitation? Or manually validate them if invited?

Hi @janx

Have you tried another email provider instead of MailJet? It may be the more straightforward way of resolving your issue.

As far as I know, we don’t have a way of listing invitation links (or the invitation tokens) in the UI. I think that you would have to send a graphql query to the /graphql endpoint of your server. The graphql definitions can be seen in our source code.

Hey @janx

Here are some alternatives for you to check out.
I suggest starting with mailgun, but unfortunately we have limited experience with these services.

I’m trying to setup a server using the one-click Digital Ocean droplet method. All seems to be working well except for this. I am definitely not an expert but I’ve tried a few ways of inputting email information using the setup.py method and none of them seem to work out. I can’t work out how to view the yaml file that is being used by the droplet. Any help/advice much appreciated.

Hi @jjsolly - I’ll investigate and see if I can set up the email using the script.

1 Like

When starting the Droplet, the script will generate a docker compose file. If you are ssh’d in to the DigitalOcean Droplet, this can be found at /opt/speckle-server/docker-compose.yml.

Both vim and nano are available as editors on the Droplet so you can run, for example, vim /opt/speckle-server/docker-compose.yml to view and edit the docker compose file.

The docker compose file should look somewhat similar to the following, depending on your own specific provider & account details:

To debug further, you can run docker ps -a on the command line to view all the running containers and view their status.

You can then view the logs for a specific container using its container ID, for example docker logs 5fbf9741c881 to view the server logs to determine if there are any reported issues with email. You can do more with Docker’s log command using the flags described on their website.

Iain

2 Likes

Thanks for the detailed answer @iainsproat. I’ll try this out and see what happens.

2 Likes

Have setup everything as best I understand the requirements. Have also tested the mailjet smtp setup separately (and it seems to be working). Still no emails being received from speckle for user invites etc. Can you kindly let me know which container log should i monitor to see whether the server is correctly sending? I am struggling to work out which one will report that behaviour.

Any errors would be reported by the container running the speckle/speckle-server:2 image.

Is everything else working; are you able to register and send data to your server?

1 Like

Yes it does all seem to be working for me at least. I’ll test with a colleague later today.

Another avenue of investigation: does your email service provide logs or statistics? Does it report that a request to send an email was received, or other similar statistics?

Hope this helps,
Iain

Hi @iainsproat I found this line in the server log:
{“level”:“warn”,“time”:“2023-10-30T10:41:47.765Z”,“msg”:“No email transport present. Cannot send emails.”}

1 Like

Ok, it’s not correctly configured somehow. Does your docker-compose.yml file look similar to my screenshot?

Here we go. I’ve checked that the mailjet settings work through thunderbird. After I updated these settings in the yml file I hit “reboot” in terminal. Is that enought to make sure the settings are adopted?
image

Your configuration looks suitable.

Before you updated the settings were there empty or broken values? Was our startup user interface that prompts you to enter information broken somehow?

Rebooting the droplet will work, though you should be able to achieve the same slightly quicker with the command: docker compose --file /opt/speckle-server/docker-compose.yml up --detach.

No there were no incomplete variables. Only I think I had a port incorrect or something. That’s now updated and I’ve rebooted but still no email correspondence working. I have just double-checked and i still see {“level”:“warn”,“time”:“2023-10-30T13:23:51.386Z”,“msg”:“No email transport present. Cannot send emails.”}

1 Like

@iainsproat just in case you didn’t see my edit to the above… there is still the “no email transport” issue remaining. I’m unclear if this is to do with something specific to DigitalOcean or to the current server release… or something else.

Would you be able to try running docker compose --file /opt/speckle-server/docker-compose.yml up --detach?

I’m wondering if the Droplet restart wasn’t actually enough, and it requires the updated docker-compose.yml file to be provided to it again.

Iain

I tried the above and got:

I have also tried running the setup.py function again on the basis that this surely must force a revisit of the information provided . I re-entered all the information as per the screenshot.

Outcome is that the yml file looks to have generated correctly but I still get the following message in the docker log:
{“level”:“warn”,“time”:“2023-10-31T08:50:01.831Z”,“msg”:“No email transport present. Cannot send emails.”}

Hey @jjsolly I think you may be missing a compose argument right after the first docker

docker compose --file FILE_PATH up --detach