Schedule an email to be sent to new users a week after registration
My way to do this is to schedule a cron job at X time. You can check here how to do this https://www.drupal.org/node/23714 or use Ultimate Cron (https://www.drupal.org/project/ultimate_cron).

If you choose to use the Drupal core, implement hook_cron() where you will check the users that are registered by one week ago( table users_field_data, column "created"). Getting all the users then it only remains to send the email. Here is an example of sending email using mail Manager:

$mailManager = \Drupal::service('plugin.manager.mail');
  $module = 'module-name';
  $key = 'key1'; // Replace with Your key
  $to = \Drupal::currentUser()-&gt;getEmail();
  $params['message'] = $message; // Create this variable $message with the concret meesage.
  $params['title'] = 'Title example'; // Replace with a title.
  $langcode = \Drupal::currentUser()-&gt;getPreferredLangcode();
  $send = true;

  $result = $mailManager-&gt;mail($module, $key, $to, $langcode, $params, NULL, $send);
  if ($result['result'] != true) {
    $message = t('There was a problem sending your email notification to @email.', array('@email' =&gt; $to));
    drupal_set_message($message, 'error');
    \Drupal::logger('mail-log')-&gt;error($message);
    return;
  }

  $message = t('An email notification has been sent to @email ', array('@email' =&gt; $to));
  drupal_set_message($message);
  \Drupal::logger('mail-log')-&gt;notice($message);


All these need to be integrated into hook_cron() function.