Alerts are configured and nothing arrives: the delivery path nobody tests
Monitoring has two halves and only one of them gets set up. The check that notices the problem is the easy half. The path that carries the message to a human is the half that breaks quietly, and it breaks after it worked.
AtlasPVE ·
This entry answers
- proxmox send email notifications
- proxmox alert email not working
- proxmox send email gmail
- proxmox notification not received
- proxmox smtp relay setup
Monitoring has two halves. The check that notices something is wrong, and the path that carries that news to a person. Almost all the attention goes to the first half, and almost all the silent failures live in the second.
The uncomfortable part is that a broken delivery path and a healthy system look exactly the same from where you sit. Both produce an empty inbox.
Why mail from a server stopped being simple
A server sending its own mail directly was normal for a long time and is now the exception. Three things happened.
Receiving providers stopped trusting unknown senders. A message that arrives without matching sender-policy records, without a signature and from an address with no reputation is treated as suspicious, and the polite version of suspicious is the spam folder.
Home and small-business connections are blocked at the port level. Many providers do not allow outbound connections on the port used for direct mail delivery, precisely because it was abused. Your server tries, and nothing tells you it never left.
Reputation belongs to the address, not to you. A residential or small-cloud address carries whatever history it has. You inherit it.
None of this makes the problem hard. It makes the naive setup silently ineffective, which is worse than hard.
The two working shapes
Send through a relay you already trust. Your server hands the message to a mail provider that is allowed to send, using credentials. This is the common answer and it works, with one caveat worth knowing: providers often require the sender address to be one they host, so a message pretending to come from somewhere else is refused or rewritten.
Do not send mail at all, and use a second channel. A push notification or a message into a service you already read. This sounds like a downgrade and is often the more reliable option, precisely because it does not depend on the deliverability of email.
Whichever you pick, the important part is the next section.
The test that actually proves it
Almost everyone tests notifications wrong, in the same way: they press the button labelled "send test" while sitting at the machine, see nothing fail, and consider it done.
That test proves the process can hand off a message. It does not prove the message arrives. A real test answers four questions:
Did it land in the inbox, not the spam folder? Delivery and visibility are different outcomes and only one of them wakes you up.
Did it come from the address the real alerts will use? A test sent as one identity says nothing about a nightly job sending as another.
Did it arrive at the hour the real alert will fire? Some paths behave differently at three in the morning than at three in the afternoon, usually because a relay's rate limits or a provider's filtering are time-dependent. This is a rarer failure and it is exactly the one that matters.
Did it survive the machine being under load? A message queued during a genuine incident is competing with the incident.
Failure modes that produce no error at all
The queue. The mail is generated, accepted locally, and sits in a queue that retries forever. Nothing is lost, nothing is delivered, and nobody looks at the queue because there was no error to prompt them.
The rewritten sender. The relay accepts the message, changes the sender to an address you do not read, and delivers it perfectly to a mailbox nobody opens.
The filter you made yourself. Alerts all look alike, so at some point one gets filed by a rule, and the rule keeps working long after you forgot writing it.
The address that stopped existing. The person left, the alias forwarded to their account, and the forward now bounces into a void.
The single most useful habit
Make the absence of a message mean something.
A system that only speaks when something is wrong cannot be distinguished from a system that has lost the ability to speak. One daily message that says everything is fine turns silence itself into a signal: if nothing arrives today, the delivery path is what you check first, and you find out on a calm morning rather than during an incident.
This is why a daily digest is worth more than it looks. Its real job is not the content, it is proving the channel still exists.
What Atlas does
Atlas Watch sends one message a day rather than a stream of alerts, and that choice is deliberate for the reason above. The digest carries the state that accumulated during the day, and its arrival is itself the proof that the path is intact.
The same notifications can also reach the account portal, which matters here specifically: it is a second channel that does not depend on the host's own mail delivery. If email is the thing that broke, a channel that does not use email is the one that still tells you.
And the honest part, because it is the whole subject of this article: when a check cannot read its data, Watch says it could not read it rather than staying quiet. A missing backup job and a healthy one look identical from outside, and the only thing that separates them is a watchman willing to report its own blindness.
Sources
Proxmox's own documentation. In English, and it has the final word on this subject.