Title: Show OpenSMTPD queue and force sending queued mails | |
Author: Solène | |
Date: 24 October 2018 | |
Tags: opensmtpd highlight openbsd | |
Description: | |
If you are using [opensmtpd](http://man.openbsd.org/smtpd) on a device | |
not | |
always connected on the internet, you may want to see what mail did not | |
go, and | |
force it to be delivered **NOW** when you are finally connected to the | |
Internet. | |
We can use [smtpctl](http://man.openbsd.org/smtpctl) to show the | |
current queue. | |
$ doas smtpctl show queue | |
1de69809e7a84423|local|mta|auth|so@tld|dest@tld|dest@tld|1540362112|154 | |
0362112|0|2|pending|406|No MX found for domain | |
The previous command will report nothing if the queue is empty. | |
In the previous output, we see that there is one mail from me to | |
dest@tld which is pending due to "NO MX found for domain" (which is | |
normal as I had no internet when I sent the mail). | |
We need to extract the first field, which is 1de69809e7a84423 in the | |
current example. | |
In order to tell opensmtpd to deliver it now, we will use the | |
following command: | |
$ doas smtpctl schedule 1de69809e7a84423 | |
1 envelope scheduled | |
$ doas smtpctl show queue | |
My mail was delivered, it's not in the queue anymore. | |
If you wish to deliver **all** enveloppes in the queue, this is as | |
simple as: | |
$ doas smtpctl schedule all |