contact_mail($key, &$message, $params)
Implements hook_mail().
File
- core/modules/contact/contact.module, line 110
- Enables the use of personal and site-wide contact forms.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | function contact_mail( $key , & $message , $params ) { $contact_message = $params [ 'contact_message' ]; /** @var $sender \Drupal\user\UserInterface */ $sender = $params [ 'sender' ]; $language = \Drupal::languageManager()->getLanguage( $message [ 'langcode' ]); $variables = array ( '@site-name' => \Drupal::config( 'system.site' )->get( 'name' ), '@subject' => $contact_message ->getSubject(), '@form' => ! empty ( $params [ 'contact_form' ]) ? $params [ 'contact_form' ]->label() : NULL, '@form-url' => \Drupal::url( '<current>' , [], [ 'absolute' => TRUE, 'language' => $language ]), '@sender-name' => $sender ->getDisplayName(), ); if ( $sender ->isAuthenticated()) { $variables [ '@sender-url' ] = $sender ->url( 'canonical' , array ( 'absolute' => TRUE, 'language' => $language )); } else { $variables [ '@sender-url' ] = $params [ 'sender' ]->getEmail(); } $options = array ( 'langcode' => $language ->getId()); switch ( $key ) { case 'page_mail' : case 'page_copy' : $message [ 'subject' ] .= t( '[@form] @subject' , $variables , $options ); $message [ 'body' ][] = t( "@sender-name (@sender-url) sent a message using the contact form at @form-url." , $variables , $options ); $build = entity_view( $contact_message , 'mail' ); $message [ 'body' ][] = \Drupal::service( 'renderer' )->renderPlain( $build ); break ; case 'page_autoreply' : $message [ 'subject' ] .= t( '[@form] @subject' , $variables , $options ); $message [ 'body' ][] = $params [ 'contact_form' ]->getReply(); break ; case 'user_mail' : case 'user_copy' : $variables += array ( '@recipient-name' => $params [ 'recipient' ]->getDisplayName(), '@recipient-edit-url' => $params [ 'recipient' ]->url( 'edit-form' , array ( 'absolute' => TRUE, 'language' => $language )), ); $message [ 'subject' ] .= t( '[@site-name] @subject' , $variables , $options ); $message [ 'body' ][] = t( 'Hello @recipient-name,' , $variables , $options ); $message [ 'body' ][] = t( "@sender-name (@sender-url) has sent you a message via your contact form at @site-name." , $variables , $options ); $message [ 'body' ][] = t( "If you don't want to receive such emails, you can change your settings at @recipient-edit-url." , $variables , $options ); $build = entity_view( $contact_message , 'mail' ); $message [ 'body' ][] = \Drupal::service( 'renderer' )->renderPlain( $build ); break ; } } |
Please login to continue.