| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | <?php/** * @file * Reroute Email admin configuration functions. *//** * Settings form. */function reroute_email_settings() {  $form[REROUTE_EMAIL_ENABLE] = array(    '#type'          => 'checkbox',    '#title'         => t('Enable rerouting'),    '#default_value' => variable_get(REROUTE_EMAIL_ENABLE, 0),    '#description'   => t('Check this box if you want to enable email rerouting. Uncheck to disable rerouting.'),  );  $form[REROUTE_EMAIL_ADDRESS] = array(    '#type'          => 'textfield',    '#title'         => t('Email addresses'),    '#default_value' => variable_get(REROUTE_EMAIL_ADDRESS, variable_get('site_mail', ini_get('sendmail_from'))),    '#description'   => t('Provide a space, comma, or semicolon-delimited list of email addresses to pass through. Every destination email address which is not on this list will be rerouted to the first address on the list.'),    '#states' => array(      'visible' => array(':input[name=reroute_email_enable]' => array('checked' => TRUE)),    ),  );  $form[REROUTE_EMAIL_ENABLE_MESSAGE] = array(    '#type' => 'checkbox',    '#title' => t('Show rerouting description in mail body'),    '#default_value' => variable_get(REROUTE_EMAIL_ENABLE_MESSAGE, 1),    '#description' => t('Check this box if you want a message to be inserted into the email body when the mail is being rerouted. Otherwise, SMTP headers will be used to describe the rerouting. If sending rich-text email, leave this unchecked so that the body of the email will not be disturbed.'),    '#states' => array(      'visible' => array(':input[name=reroute_email_enable]' => array('checked' => TRUE)),    ),  );  return system_settings_form($form);}/** * Validation callback for reroute_email_settings() form. */function reroute_email_settings_validate($form, $form_state) {  if ($form_state['values']['reroute_email_enable'] == TRUE) {    // Allow splitting emails by space, comma, semicolon.    $addresslist = preg_split(REROUTE_EMAIL_EMAIL_SPLIT_RE, $form_state['values']['reroute_email_address'], -1, PREG_SPLIT_NO_EMPTY);    foreach ($addresslist as $address) {      if (!valid_email_address($address)) {        form_set_error('reroute_email_address', t('@address is not a valid email address', array('@address' => $address)));      }    }  }}/** * Form for sending test messages. */function reroute_email_test_email_form() {  return array(    'addresses' => array(      '#type' => 'fieldset',      '#description' => t('Email addresses are not validated: any valid or invalid email address format could be submitted.'),      'to' => array(        '#type' => 'textfield',        '#title' => t('To'),        '#required' => TRUE,      ),      'cc' => array(        '#type' => 'textfield',        '#title' => t('Cc'),      ),      'bcc' => array(        '#type' => 'textfield',        '#title' => t('Bcc'),      ),    ),    'subject' => array(      '#type' => 'textfield',      '#title' => t('Subject'),      '#default_value' => t('Reroute Email Test'),    ),    'body' => array(      '#type' => 'textarea',      '#title' => t('Body'),    ),    'submit' => array(      '#type' => 'submit',      '#value' => t('Send email'),    ),  );}/** * Submit handler for email test. */function reroute_email_test_email_form_submit(&$form, &$form_state) {  $to = $form_state['values']['to'];  $param_keys = array('cc', 'bcc', 'subject', 'body');  $params = array_intersect_key($form_state['values'], array_flip($param_keys));  $message = drupal_mail('reroute_email', 'test_email_form', $to, language_default(), $params);  if (!empty($message['result'])) {    drupal_set_message(t("Test email submitted for delivery."));  }}
 |