Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce e-mail tracking system to get status of their delivery #5670

Open
asgardianec opened this issue Jan 24, 2024 · 6 comments
Open

Introduce e-mail tracking system to get status of their delivery #5670

asgardianec opened this issue Jan 24, 2024 · 6 comments

Comments

@asgardianec
Copy link

Summary

Hello colleagues,

I am running the Mailcow server on virtual server. Also I have ElasticMail as SMTP server because I use it for tracking emails. But I want to get rid of ElasticMail as it making troubles sending the emails. However I need a reliable tool to monitor my e-mails for status, delivered or not, bounced or not and etc. Can you recommend one ? It would be nice if it works as API inside the Mailcow. Greylog or opensearch looks like complicated solution. Thank you in advance.

Motivation

I know you can monitor Rspamd or Postfix but it is boring and without full information.

If there would be some tool that collect all needed information from a multiple domains and e-mails. It would be easier for IT departments in office or admins to see the incoming/outgoing information such e-mail stucked somewhere while the user think it has been sent and they can wait for reply for a weeks despite e-mails bounced after 5 minutes when it was sent.
1
2

Additional context

No response

@asgardianec
Copy link
Author

Any ideas ?

@asgardianec
Copy link
Author

There is no...go to Exchange Online.

@killmasta93
Copy link

+1

@hacktisch
Copy link

I've custom implemented this for our own Mailcow / ticketing software integration (well, I only track succesful deliveries or bounces. Not the mail 'opens' count)

I have a function that periodically fetches the latest Postfix logs from Mailcow via the API at /api/v1/get/logs/postfix,

Then I have a small SQLite database where the logs are aggregated such that they're grouped by their Postfix Queue ID. Some log entries contain the Message-ID, some contain the recipient, and some contain a status. So by grouping the logs, I can collect all data necessary to view the mail's success or failure status.

Then I implemented my own endpoints to retrieve the status of a certain message by its message ID, or there's webhooks that my function calls to update external endpoints with the new status (Similarly to how Mailgun, Sendgrid etc work).

So our team can now see whether e-mails bounced or succeeded.

I figure that a 'mail open' tracker could be implemented by adding a pixel image to mails which loads a pixel to your server, with a message identifier, so that you can track each open upon each request to the image.

@killmasta93
Copy link

hi @hacktisch i would love to try it out :) if possible to share the info

@hacktisch
Copy link

hacktisch commented Nov 18, 2024

hi @hacktisch i would love to try it out :) if possible to share the info

I've just created a new repo with a cleaned up version of what I built:
https://github.com/hacktisch/mailcow-status-tracker

It tracks any status that can occur in the Postfix logs ('sent', 'bounced', 'deferred', 'queued', 'expired','rejected',...)

logs-screenshot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants