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?
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.”}
@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
Hi @jjsolly
Can you run the following, which should show you a list of environment variables in the running server container.
Firstly, get the container ID of the speckle/speckle-server:2
image, as before:
docker ps -a
Then use that ID, replacing yourcontainerid
in the below, to get the environment variables:
docker exec yourcontainerid env | grep EMAIL_
The environment variables should match your configuration file.
Iain
Additionally, in the container logs (somewhere very near the top, when the server was started) do you see either of the following messages?
📧 Email provider is not configured. Server functionality will be limited.
or
📧 Email provider is misconfigured, check config variables.
Yes - they do seem to.
After learning how to do back in time in docker logs I found:
{“level”:“error”,“time”:“2023-10-31T08:49:43.763Z”,“err”:{“type”:“Error”,“message”:“read ECONNRESET”,“stack”:“Error: read ECONNRESET\n at TCP.onStreamRead (node:internal/stream_base_commons:217:20)”,“errno”:-104,“code”:“ESOCKET”,“syscall”:“read”,“command”:“CONN”},“msg”:“ Email provider is misconfigured, check config variables.”}
{“level”:“warn”,“time”:“2023-10-31T08:49:43.764Z”,“component”:“modules”,“msg”:“ Email provider is not configured. Server functionality will be limited.”}
So @iainsproat you were right - that does seem to be an issue. BUT just to confirm - I setup an SMTP server in Thunderbird with the same credentials, host, port etc. and it works fine.
It’s good that the environment variables are correct at least
ECONNRESET
typically means that the destination server closed the connection; which indicates that we were able to connect to the server, if somewhat briefly, which is good. Possibly something else was misconfigured. I’m wondering if it has to do with the protocol we’re using (possibly Thunderbird defaults to a secure connnection, which is why it worked?)
In your docker-compose.yml
file, can you amend EMAIL_SECURE=false
to be EMAIL_SECURE=true
?
Then run docker compose --file /opt/speckle-server/docker-compose.yml up --detach
again.
Then take a look at the environment variables on the container, to ensure the changes were applied correctly. Then take a look at the logs once more.
Thanks,
Iain
@iainsproat I have updated the .yml but that docker compose command doesn’t work at all for me. It just says “unknown flag: – file”.
Also for reference, I tried “reboot” and that definitely doesn’t update the env variables from the yml.
An update:
- through use of “docker-compose down” and “docker-compose up” I now have:
But… checking on the server logs:
So there still seems to be an issue.
Apologies, I was missing a hyphen in the command. It should be docker-compose
and not docker compose
.
docker-compose --file /opt/speckle-server/docker-compose.yml up --detach
I’ve deployed a DigitalOcean Droplet and configured it with Mailjet settings. It is working for me, so I’ve been unable to replicate your issue unfortunately.
Can you try port 587
and EMAIL_SECURE=false
? This might work instead of the SMTPS protocol port 465
. Which SMTP Port Should I Use with Mailjet? | Mailjet
Iain
Will give this a whirl!
When you say you have configured the droplet with mailjet settings - you mean as we have discussed through this thread? There aren’t other settings to know about that I might have missed?
Also - have you setup the mailjet settings through the standard python script setup? Or through editing the .yml
Hi all - by way of an update - I never managed to get mailjet to work for me. But I setup a SendGrid account and it works perfectly! Thanks for the assistance all and especially @iainsproat.
Great, you found a solution - we can keep track of anyone else attempting Mailjet and if we find something that is a gotcha, be sure to document it.