You are here

smtp.install in SMTP Authentication Support 7

Same filename and directory in other branches
  1. 8 smtp.install
  2. 6 smtp.install
  3. 7.2 smtp.install

The installation instructions for the SMTP Authentication Support.

File

smtp.install
View source
<?php

/**
 * @file
 * The installation instructions for the SMTP Authentication Support.
 */

/**
 * Implements hook_requirements().
 */
function smtp_requirements($phase) {
  $requirements = array();
  $t = get_t();
  if ($phase == 'runtime') {
    if (variable_get('smtp_queue', FALSE) || variable_get('smtp_queue_fail', FALSE)) {
      $count = db_query("SELECT count('name') FROM {queue} WHERE name='smtp_send_queue'")
        ->fetchField();
      $requirements['smtp_queue'] = array(
        'title' => $t('SMTP Queue'),
        'value' => '',
        'severity' => REQUIREMENT_INFO,
      );
      if ($count > 0) {
        $requirements['smtp_queue']['value'] = format_plural($count, 'There is 1 message queued for delivery.', 'There are @count messages queued for delivery.', array(
          '@count' => $count,
        )) . ' ' . $t('Delivery of the message(s) will be attempted the next time cron runs.');
      }
      else {
        $requirements['smtp_queue']['value'] = $t('There are no messages queued for delivery.');
      }
    }
  }
  return $requirements;
}

/**
 * Implements hook_install().
 */
function smtp_install() {
  variable_set('smtp_on', 0);
}

/**
 * Implements hook_uninstall().
 */
function smtp_uninstall() {
  variable_del('smtp_allowhtml');
  variable_del('smtp_from');
  variable_del('smtp_fromname');
  variable_del('smtp_host');
  variable_del('smtp_hostbackup');
  variable_del('smtp_on');
  variable_del('smtp_password');
  variable_del('smtp_port');
  variable_del('smtp_protocol');
  variable_del('smtp_verify_peer');
  variable_del('smtp_verify_peer_name');
  variable_del('smtp_allow_self_signed');
  variable_del('smtp_queue');
  variable_del('smtp_queue_fail');
  variable_del('smtp_username');
  variable_del('smtp_debugging');
  variable_del('smtp_client_hostname');
  variable_del('smtp_client_helo');
  variable_del('smtp_deliver');
  variable_del('smtp_reroute_address');
}

/**
 * Implements hook_disable().
 */
function smtp_disable() {
  $mail_modes = variable_get('mail_system');
  $mail_modes['default-system'] = 'DefaultMailSystem';
  variable_set('mail_system', $mail_modes);
}

/**
 * Implementations of hook_update_N().
 */

/**
 * Upgrade to Drupal 7.x
 */
function smtp_update_7000() {
  if (variable_get('smtp_on', 0) != 0) {
    variable_set('mail_system', array(
      'default-system' => 'SmtpMailSystem',
    ));
  }

  // Not used any more in D7.
  variable_del('smtp_library');
}

/**
 * Back to default mail system if the status flag is off.
 */
function smtp_update_7100() {
  $mail_modes = variable_get('mail_system', array(
    'default-system' => 'DefaultMailSystem',
  ));
  if ($mail_modes['default-system'] == 'SmtpMailSystem' && !variable_get('smtp_on', FALSE)) {
    $mail_modes['default-system'] = 'DefaultMailSystem';
    variable_set('mail_system', $mail_modes);
  }
}

/**
 * Updating variable value now that new SMTP logging behavior has been
 * implemented.
 */
function smtp_update_7101() {
  $old_debugging_value = variable_get('smtp_debugging', 0);
  $logging = SMTP_LOGGING_NONE;
  if ($old_debugging_value == 1) {
    $logging = SMTP_LOGGING_ERRORS;
  }
  variable_set('smtp_debugging', $logging);
}

/**
 * Remove the unused 'smtp_library' variable.
 */
function smtp_update_7102() {
  variable_del('smtp_library');
}

/**
 * Delete the variable "smtp_test_address". It is unlikely that this would
 * actually be set in the normal course of events, and it's no longer needed as
 * it was replaced with a form submit handler.
 */
function smtp_update_7103() {
  variable_del('smtp_test_address');
}

/**
 * Add "smtp_verify_peer", "smtp_verify_peer_name", "smtp_allow_self_signed" variables
 * based on current running PHP version for most compatibility.
 */
function smtp_update_7104() {
  if (version_compare(phpversion(), '5.6.0', '>=')) {
    variable_set('smtp_verify_peer', TRUE);
    variable_set('smtp_verify_peer_name', TRUE);
  }
  else {
    variable_set('smtp_verify_peer', FALSE);
  }
  variable_set('smtp_allow_self_signed', FALSE);
}

Functions

Namesort descending Description
smtp_disable Implements hook_disable().
smtp_install Implements hook_install().
smtp_requirements Implements hook_requirements().
smtp_uninstall Implements hook_uninstall().
smtp_update_7000 Upgrade to Drupal 7.x
smtp_update_7100 Back to default mail system if the status flag is off.
smtp_update_7101 Updating variable value now that new SMTP logging behavior has been implemented.
smtp_update_7102 Remove the unused 'smtp_library' variable.
smtp_update_7103 Delete the variable "smtp_test_address". It is unlikely that this would actually be set in the normal course of events, and it's no longer needed as it was replaced with a form submit handler.
smtp_update_7104 Add "smtp_verify_peer", "smtp_verify_peer_name", "smtp_allow_self_signed" variables based on current running PHP version for most compatibility.