All 17 Email Delivery sections
The log
Email Delivery → Log. Every message the site tried to send, newest first: who it went to, what it was called, which plugin asked for it, and what happened.
"Which plugin asked" is read from the plugin, must-use plugin or theme that called WordPress's mailer, so a WooCommerce order email says woocommerce. It says wordpress only for a message nothing but WordPress had a hand in, such as a password reset from the login screen. Before this was fixed every row said wordpress; rows written then keep what they say.
Search by address or subject. The search looks at the To line, the subject and what the mail server said, not at a Cc or a Bcc. An address can be pasted the way an email program copies it, Jane Customer <jane@example.com> or <jane@example.com>, with a note after it such as (work): the log looks for the address itself, so it finds the messages sent to her whether they were written with her name or, as WooCommerce writes them, without it. Two addresses pasted together are searched for as typed. The search stays in place when you change tab, page on, or download what you are looking at, a + in an address included. The Did not arrive tab is the one most people want — it holds everything that was refused, is being tried again, or was given up on, with the mail server's reason beside each. A message that reached some of its addresses and was refused for the others is listed there too, marked Partly sent. When every address on its To line was refused and only a Cc or a Bcc took it (the customer refused, your own copy delivered), it is marked Refused, since the person it was for does not have it.
Download as a spreadsheet saves what you are looking at, every page of it: the tab you are on and anything you searched for, with when, who to, the subject, which plugin asked, what happened and what the mail server said. A subject that somebody typed into a form to look like a spreadsheet formula is written as plain text, so opening the file never runs it.
Empty the log deletes every row, and asks first. A message you might still want to send again goes with it, so the log is emptied only when you answer that question with OK. When messages are still waiting to be tried again, the question says how many: they go with the log and are never sent. If more are waiting by the time you answer than the question said, nothing is emptied and the question is asked again with the number as it is now. Opened any other way, in a new tab, with the middle mouse button or from a link saved earlier, it empties nothing: the Log screen shows the question again with its own Empty the log button and Cancel.
Delete on a row asks first too, naming the message by its subject. For a message still waiting to be tried again it says that, deleted, it will never be sent; for one being sent at that moment, or whose last try was cut off, it says it may already have gone. Opened in a new tab, with the middle mouse button or from a link saved earlier, it deletes nothing and the Log screen asks the question again.
Opening a message#
Click a message's subject to open it. You see what happened to it and when, who it went to (the To line, and any Cc, Bcc, Reply-To and From it carried), which plugin asked for it, whether the main or the backup connection sent it, how many attempts it took, everything the mail server said, when the next attempt is due if it is still waiting, and the names of any attachments. A WooCommerce email about an order also names the order, Order #1234, linked to the order's screen (see Emails about a WooCommerce order, below).
Where the message kept no From line of its own, the page shows the From address it went out with. Messages logged before this was recorded show your own From address from Settings there, which is only right if Use this address for every message was on when they were sent.
The message itself is shown only if it was kept (see below). An HTML message is shown in a closed-off frame: nothing in it can run, and nothing is fetched to show it. Pictures from other sites stay off until you press Show pictures, because a picture loaded from the sender's server is how a sender knows a message was opened. A plain-text message is shown as it was written. If the message was not kept, the page says so and links to the setting.
A message holding a link that sets an account's password (see below) is shown with the key in that link hidden, and the page says so. Anybody who can open the log could otherwise copy the link and sign in as that account; on a network that is every site's administrator. Sending the message again to the address it went to still sends the working link. In the rare message whose key cannot be hidden, the message is not shown at all.
Sending a message again#
Send again is offered for any message whose body was kept, sent or not.
- On a message that did not go, Send again in the list tries it again at once, to the same addresses, as the same row of the log. It sends only if nothing has happened to the message since the list was drawn. If the automatic retry delivered it while the list was open, nothing is sent and you land on the message's page, which says so. If you keep messages (see below), its Send again form is there for a second copy you mean to send. If the message was tried again in the meantime, by the automatic retry or by the same button in another tab (even while that press is still waiting for the mail server), nothing is sent either, and the log shows where it stands.
- A message the log shows as Trying again with no next attempt is being sent at that moment, or its last attempt was cut off part way and it may already have gone. A Refused or Given up message reads that way while Send again is sending it. Its Send again opens the message's page, which says it may already have gone, so it is only sent again on purpose: from there it goes as a copy of its own, to the addresses in the form, without the Cc or Bcc. Once that copy has gone, the first one stops being tried: if the attempt that was out is refused, it is not put back in the retry queue to go again beside the copy.
- A message the mail server took for some of its addresses and refused for the others (the log marks it Partly sent, or Refused when everybody on its To line was refused, and says Sent to some of the addresses only), and a message already sent again to a corrected address, count as messages that went. Their Send again opens the message's page too, so nobody who already has the message gets it again, and nothing goes back to the old, wrong address, with one click. A message whose automatic retry reaches some of its addresses is recorded the same way and is not tried again.
- On a message that went, Send again opens the message with its Send again form at the top, so a second copy to a customer is sent on purpose, with the address in front of you. The form starts with the addresses it went to, written as they were (
Jane Customer <jane@example.com>works as it stands, and so does a name in quotes with a comma in it). For a message that already sent again to a corrected address, it starts with the addresses that copy went to; for a message that reached some of its addresses, with only the ones the mail server refused (or empty, when the mail server's reply names none of them). Change the address if the customer typed it wrong, or add another, separated by commas. Each new one must be a real email address. Pressing Send again twice, or a slow connection sending the form twice, sends it once. If the mail server takes it for some of the addresses and refuses the others, the log says whom it was sent to and quotes what the server said about the rest, rather than that it could not be sent; in red when every address on its To line was refused. If nothing was sent and nothing was written to the log (with Keep a record of what was sent off, say), it says it could not send it, and a message waiting to be tried again stays in the queue as it was. Sent back to the same addresses, if the message went or was tried again after the page was drawn, it sends nothing and says so. Sent to a corrected address, it goes whatever the automatic retry did with the old one in the meantime.
A message that did not go, sent back to exactly the addresses it had, is tried again as it was, Cc and Bcc included, since none of them got it; the form says so when the message had a Cc or Bcc.
A message sent to different addresses, or one that had already gone, goes out as a new message through WordPress in the ordinary way, and the log shows it as its own row: the new one says Sent again from #12 and the first says Sent again as #34. Only the addresses you type receive it. Any Cc or Bcc on the original is left off, so the people copied on an order do not get it twice. A message the page shows as HTML goes as HTML, even when the plugin that first sent it did not say so in the message's headers.
If the message was still waiting to be tried again at the old address, it stops being tried once the copy has gone to the new one (or is waiting to be tried there itself), and its row says Given up with Sent again as #34 beneath. Nothing about that is reported as a failure. If the copy could not be sent and nothing is going to try it again, the original goes back to waiting exactly as it was.
A message holding a link that sets an account's password can only go back to the address it was sent to. Anyone holding that link can take over the account, so sending it somewhere else is refused, with a sentence saying why. This covers WordPress's own password reset and new-user emails, WooCommerce's password reset and new-account ("set your password") emails, with pretty or plain permalinks and with the reset page renamed in WooCommerce's settings, and a network's account activation email. A plugin that signs people in by a link of some other kind is not recognised, so look at such a message before sending it anywhere new. An order's own links (pay for this order, view this order) are not password links, so an order confirmation can go to a corrected address.
The message itself is not kept. A body is a password reset link, an order, a customer's question, so none is stored unless you switch that on under Settings → What is kept. The one exception is a message waiting to be sent again, which has to be kept in order to be sent — and that copy is deleted the moment it goes or is given up on. The same goes for where any attached file sat on the server: kept while the message is waiting, so the file can go with it, and shortened back to the file's name the moment the message is done with — unless you have switched the body on, in which case both stay for as long as the row does.
How much is kept is up to you: a number of rows and a number of days, whichever runs out first. Old rows are trimmed once a day.
A message waiting to be sent again is not trimmed while it waits. The daily tidy-up gives up on it when Keep a refused message and try again is switched off, when it is older than the number of days you keep, even if it has tries left, and when its last attempt was cut off part way, once it is a day old. From then on it is trimmed like any other row. Giving up deletes its copy of the message, unless Keep the message itself as well is on: then the copy stays for as long as the row does, as every message's does. Nothing new is reported when the tidy-up gives up on a message; the refusal was reported when it happened, and the log shows the message as given up.
Tools → Export Personal Data and Erase Personal Data include the log. An export lists every message the log holds with the address on the To line, or in a Cc, Bcc, Reply-To or From header: when, the subject, what happened and which plugin asked for it. It leaves out the other addresses on the message. A message that names the address only in its body or in the mail server's reply is not included. An erasure deletes those rows, and takes the address out of the mail server's sentence that the wp-admin notice quotes. WordPress then emails the person to say it is done, and that message is logged like any other.
Still stuck? Ask the developers who wrote it. We aim to reply within one business day.