TSF – Giải pháp IT toàn diện cho doanh nghiệp SMB | HCM

Proxmox Backup Email Notification – Fully Working Setup

In this guide, we show how to set up Proxmox Backup Email Notifications for your VMs and containers. You will learn how to configure email alerts so you always know when a backup succeeds or fails. The tutorial covers Postfix/SMTP setup and testing email delivery for Proxmox VE. We demonstrate a fully working configuration that ensures reliable notifications for all backup jobs. You will see how to monitor backup logs and troubleshoot common issues.
This setup is compatible with Proxmox VE 9.x and works for both local and remote storage. Following this guide helps IT admins and homelab enthusiasts ensure backup reliability and prevent data loss. By the end of this tutorial, your Proxmox system will send instant email alerts whenever backup events occur.

Lab: I am using a private email server built with mailcow for this lab.

Step 1: Install Postfix on Proxmox

SSH into Proxmox or use console.
apt update

On Debian/Proxmox, you need to install:
apt install libsasl2-modules

This package provides the “mechanisms” such as PLAIN or LOGIN that Postfix needs to authenticate.
Run the Postfix configuration command:

dpkg-reconfigure postfix

System mail name is the name your server “introduces itself” when sending mail out (ie the hostname that appears in the From / Received header). It should be the domain name that your mail server manages and can be authenticated by DNS (SPF/DKIM) so that mail is not marked as spam.
 Server domain: tsf.id.vn
Recipient for root and postmaster mail: asks where you want mail sent to the root and postmaster of this server to be forwarded. This is internal system mail (e.g. error notification, cron, backup).
 baotran@tsf.id.vn

Step 2: Configure main.cf postfix

Run each of these commands (to let Postfix write the correct configuration):

postconf -e “relayhost = [mail.tsf.id.vn]:587”
postconf -e “smtp_sasl_auth_enable = yes”
postconf -e “smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd”
postconf -e “smtp_sasl_security_options = noanonymous”
postconf -e “smtp_sasl_mechanism_filter = plain, login”
postconf -e “smtp_sasl_type = cyrus”
postconf -e “smtp_use_tls = yes”
postconf -e “smtp_tls_security_level = encrypt”
postconf -e “smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt”

Step 3: Create sasl_passwd file for SMTP auth

nano /etc/postfix/sasl_passwd

Content:
[mail.tsf.id.vn]:587 admin@tsf.id.vn:YourMailPassword

Replace YourMailPassword with admin@tsf.id.vn’s password or App Password
Save file Ctrl + O, Enter, Ctrl + X

Run again:
postmap /etc/postfix/sasl_passwd
systemctl restart postfix

make sure the original file is only readable by root:
chmod 600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

Step 4: Add user address mapping map send:

Create file:
nano /etc/postfix/sender_canonical

Add line:
root@tsf.id.vn admin@tsf.id.vn

Then create map:
postmap /etc/postfix/sender_canonical
chmod 600 /etc/postfix/sender_canonical*

_______________________________________
Declare for Postfix to use this map:
postconf -e “sender_canonical_maps = hash:/etc/postfix/sender_canonical”

systemctl restart postfix

Step 5: Test sending mail

echo “Test mail from Proxmox” | mail -s “Proxmox test” baotv1992@gmail.com
If receiving mail → everything OK, Proxmox can send backup mail via mailcow.

If it fails, check the log
journalctl -u postfix –f
Delete old mail in the queue
postsuper -d ALL

Set default sender for all Proxmox mail
nano /etc/postfix/main.cf
canonical_maps = hash:/etc/postfix/sender_canonical
sender_canonical_maps = hash:/etc/postfix/sender_canonical
then run:
postmap /etc/postfix/sender_canonical
systemctl reload postfix

Step 6: Backup Schedule

Ex: backup vm 104 at daily

Check email after backup is complete