The TLS docs don’t seem to be very specific on combining different uses of the directive.
I haven’t actually had to specify any TLS options myself, but I imagined you would have to call it twice, once to set your email, and once to open a block within which to specify your subdirectives.
You can set your email globally by changing the command you call Caddy with (as per the CLI docs) to use -email your@email.com.
You can certainly use the -email command line option as Matthew pointed out; that will apply the email to all certificates. However, Caddy doesn’t share server blocks: no inheritance, no mix-mashing of server block contents. For each connection, only one server block (the most specific, matching one) is applied. Sorry. But it keeps things simple – even if you do have to duplicate some content. If the amount of duplicated content is high, you can save yourself some line count by using import.
Hmm, I never thought of using import inside a server block to hold repetitious configurations. Currently I use it as the only line in my Caddyfile to get *.caddy from my vhosts directory. That might prove useful.
While you’re here, are you able to confirm for us whether the tls command is intended to be called twice as per my comment?