User Tools

Site Tools


DMARC Reporter Script

(from VPOP3 v8.6 onwards)

This script lets you customise how VPOP3 sends DMARC reports to the sending domain. This can be useful in case the sending domain's DMARC configuration is incorrect as that can cause errors sending the reports or cause messages to be 'stuck' in VPOP3's Outqueue. These problems won't cause any lasting damage, but may be inconvenient or annoying, so you can alter the behaviour using Lua scripting

If you want more complex signatures on outgoing emails, rather than the static text/HTML you can define within VPOP3, then you can use a simple Lua script to define the signature.

The Lua script is stored in a file called dmarcreporter.lua in the VPOP3 directory in VPOP3 v6.6 and earlier, or managed through the Settings → Scripts page in VPOP3 v6.7 and later.


For each domain to which a DMARC aggregate report will be sent, VPOP3 calls the CheckRecipients function to validate the report's recipients

CheckRecipients(<Domain>, <RUA entry from DMARC record>, <start time>, <end time>, <DMARC report ID>, <list of recipients>)

The function returns a table containing the new recipient email addresses


Before sending the report, VPOP3 calls the GetMessageDetails function to allow the script to change some message details:

GetMessageDetails(<Policy domain>, <list of recipients>, <Sender email address>, <Sender name>, <Submitter domain>)

The function returns values:

  1. The sender email address to use
  2. The sender name to use
  3. The Submitter domain to use
  4. The time to delete the message from the Outqueue (either a number of seconds, or an ISO-8601 format date/time). “” = default (added in v8.6)
  5. The time to hold the message before sending (either a number of seconds, or an ISO-8601 format date/time). “” = default (added in v8.6)

The 'submitter domain' is the 'Submitter' part of the report subject line as defined in RFC 7489 Section (

reference/dmarc_reporter_script.txt · Last modified: 2023/11/12 09:51 by paul