How to register a new System Message email I want to send a welcome email to the user when they sign up (not an activation email). 

I can see the email and edit its text in the Control Panel, but the email doesn't send when a new user registers. 

Here is my code:

Event::on(SystemMessages::class, SystemMessages::EVENT_REGISTER_MESSAGES, function(RegisterEmailMessagesEvent $event) {
    $event-&gt;messages[] = [
        'key' =&gt; 'after_activate_user',
        'heading' =&gt; 'When someone registers:',
        'subject' =&gt; 'Subject',
        'body' =&gt; 'Message text',
    ];
});


My question, is there anything else I need to do to get this email to send? Do I need to define a recipient?
This will only register your message with Craft. To then send it you would do something like this:

Event::on(
    Elements::class, 
    Elements::EVENT_AFTER_SAVE_ELEMENT,
    function(Event $event) {
        if ($event-&gt;element instanceof \craft\elements\User) {
            $user = $event-&gt;element;
            if($event-&gt;isNew) {
                Craft::$app
                    -&gt;getMailer()
                    -&gt;composeFromKey('after_activate_user')
                    -&gt;setTo($user)
                    -&gt;send();
            }
        }
    }
);


This will listen for the EVENT_AFTER_SAVE_ELEMENT event, make sure it's a User being saved, check that it's a new user then send the message.