All 17 Email Delivery sections
From the command line
wp email-delivery status
wp email-delivery test me@example.com --transcript
wp email-delivery test me@example.com --ports
wp email-delivery check --transcript
wp email-delivery domain
wp email-delivery log --status=problem --limit=50
wp email-delivery retry
wp email-delivery hold
wp email-delivery hold releasedomain looks up the From domain's SPF, DKIM and DMARC records now and prints a row for each, as the Dashboard's From Domain panel shows them, and keeps the answer for the panel. --format=json prints the same as JSON.
test --ports does what Send a test does when the mail server cannot be reached: it tries up to three other ports the service publishes, for at most 15 seconds, and says which one answered and where the service lists it. It changes nothing; set the port in Settings to use it, or set TRML_PORT and TRML_ENCRYPTION in wp-config.php where the port is set there. Without --ports, nothing else is tried, so a script that runs test is not kept waiting. With it, a mail server that answered and refused something else is said to have answered, and no port is tried. When no port is tried for another reason, it says which: the mail server's name could not be found, or Encryption is None.
check signs in to each mail server and straight out again, sends nothing, and says whether each one accepted the sign-in, refused it, offered no sign-in, or could not be connected to. It exits with status 1 when any connection did not accept the sign-in, so a monitoring script can act on it. --transcript prints the conversation, with the username and password taken out. It runs whether or not the daily check is switched on.
retry tries every message that is waiting to be sent again, once, straight away, which is the one to run after fixing the mail server. It says how many went, and warns how many failed again (still waiting) and how many have now been tried the most times allowed (given up on). If the scheduled retry runs at the same time, each message is still sent once, by whichever of the two reaches it first, and the command says how many it left to the other. On a copy of the site, where email is held, it sends nothing and says why.
hold says whether email is being held because the site looks like a copy of itself, why, the address it was set up at and the one it answers at, how many messages wait, and how many were sent as usual because the log could not keep them. hold release notes this address as the real site and sends what was held; hold keep keeps holding and stops the notice asking.
log --status takes problem, sent, failed, retrying, given_up or held, and refuses any other word. --limit is exactly how many rows are printed.
Still stuck? Ask the developers who wrote it. We aim to reply within one business day.