In systemd, local virtual consoles are managed by
getty@.service and serial lines by
serial-getty@.service. Both start the agetty program which initializes a few tty parameters, displays the banner, and the "login:" prompt.
For your program, it's best to just use the existing unit as a base, and change it to run the custom program.
/etc/systemd/system/myapp@.service. Edit your new file to have the correct program in ExecStart=, and additionally add a line
Conflicts=getty@%i.service in the [Unit] section.
systemctl start myapp@tty1. If it works, disable the original email@example.com through systemctl and enable your own.