The function drupal_get_form() is used to get the form details. Normally in Drupa,l the form field are constructed as an associative array. This associative array is defined inside a form function. The function name is the form ID, using this form ID we can able to render the form.
The Hook system will provide alter any content from one function from another in Drupal. The Drupal 8 Hook implementation are invoked with help of Core Drupal class function of moduleHandler(). This function will provide the object to execute all hook functions to alter the content.
Drupal system makes blocks is cachable to speed render. The block cache is stored in Drupal core database block_cache table. By altering or change information of block as non-cachable. This is achieved by passing cache as "DRUPAL_NO_CACHE" in hook_block_info() for custom block and hook_block_info_alter() in existing block.
In Drupal we can alter a form using the HOOK, hook_form_alter(). Webforms are used to create forms in interfaces. We can alter webform using hook_form_alter to change field types, label and custom validate or submit for our purposes. The below example will show editing the webform fields and adding custom validate.
In Drupal 8 we can able to call custom validate and submit function for our need. This custom functions need to be defined in hook_form_alter(). Validate is defined as array parameter for #validate key of $form array. Similarly for submit is defined as array parameter for #submit on $form submit action.
In Drupal we can't send HTML mails, It won’t support HTML content rendering. In Drupal mail Body considered as normal text. So we need to alter the mail content mime type to HTML for HTML tags support.