[ Index ]
 

Code source de Horde 3.1.3

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/lib/Net/SMS/ -> generic_smtp.php (source)

   1  <?php
   2  /**
   3   * Generic e-mail based SMS driver
   4   *
   5   * Copyright 2005-2006 WebSprockets, LLC
   6   *
   7   * See the enclosed file COPYING for license information (LGPL). If you did
   8   * not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
   9   *
  10   * This driver interfaces with the email-to-sms gateways provided by many
  11   * carriers, particularly those based in the U.S.
  12   *
  13   * $Horde: framework/Net_SMS/SMS/generic_smtp.php,v 1.8.2.4 2006/07/13 08:57:45 jan Exp $
  14   *
  15   * @category   Networking
  16   * @package    Net_SMS
  17   * @author     Ian Eure <ieure@php.net>
  18   * @since      Horde 3.1
  19   * @since      Net_SMS 0.0.2
  20   */
  21  class Net_SMS_generic_smtp extends Net_SMS {
  22  
  23      /**
  24       * Capabilities of this driver.
  25       *
  26       * @var array
  27       */
  28      var $capabilities = array(
  29          'auth'        => false,
  30          'batch'       => false,
  31          'multi'       => false,
  32          'receive'     => false,
  33          'credit'      => false,
  34          'addressbook' => false,
  35          'lists'       => false
  36      );
  37  
  38      /**
  39       * Driver parameters.
  40       *
  41       * @var array
  42       *
  43       * @access private
  44       */
  45      var $_params = array(
  46          'carrier'     => null,
  47          'mailBackend' => 'mail',
  48          'mailParams'  => array(),
  49          'mailHeaders' => array()
  50      );
  51  
  52      /**
  53       * Carrier email map.
  54       *
  55       * @var array
  56       *
  57       * @access private
  58       */
  59      var $_carriers = array(
  60          /* U.S. carriers. */
  61          'att'          => '%s@mmode.com',
  62          'cingular'     => '%s@mmode.com',
  63          'verizon'      => '%s@vtext.com',
  64          'boost'        => '%s@myboostmobile.com',
  65          'cellularone'  => '%s@mycellone.net',
  66          'cincybell'    => '%s@gocbw.com',
  67          'sprint'       => '%s@messaging.sprintpcs.com',
  68          'tmobile_us'   => '%s@tmomail.com',
  69          'suncom'       => '%s@tms.suncom.com',
  70          'aircel'       => '%s@airsms.com',
  71          'airtel'       => '%s@airtelmail.com',
  72          'bplmobile'    => '%s@bplmobile.com',
  73          'bellmobility' => '%s@txt.bellmobility.ca',
  74          'bluegrass'    => '%s@sms.bluecell.com',
  75          'cellforce'    => '%s@celforce.com',
  76          'cellularone'  => '%s@mycellone.net',
  77          /* German carriers. */
  78          'eplus'       => '%s@smsmail.eplus.de',
  79          'tmobile_de'  => '%s@t-mobile-sms.de',
  80          'vodafone_de' => '%s@vodafone-sms.de',
  81      );
  82  
  83      /**
  84       * Identifies this driver.
  85       *
  86       * @return array  Driver info.
  87       */
  88      function getInfo()
  89      {
  90          return array(
  91              'name' => _("Email-to-SMS Gateway"),
  92              'desc' => _("EMail-to-SMS gateway driver, for carriers which provide this service.")
  93          );
  94      }
  95  
  96      /**
  97       * Returns required parameters.
  98       *
  99       * @return array  Array of required parameters.
 100       */
 101      function getParams()
 102      {
 103          return array(
 104              'carrier'     => array('label' => _("Carrier"), 'type' => 'text'),
 105              'mailBackend' => array('label' => _("PEAR::Mail backend"), 'type' => 'text')
 106          );
 107      }
 108  
 109      /**
 110       * Sends the message.
 111       *
 112       * You may also specify the carrier with the 'carrier' key of the message
 113       * to avoid creating a new instance for each carrier, or fiddling with the
 114       * parameters.
 115       *
 116       * @access private
 117       *
 118       * @param array $message  Message to send.
 119       * @param string $to      Destination phone number.
 120       *
 121       * @return array  An array with the success status and additional
 122       *                information.
 123       */
 124      function _send(&$message, $to)
 125      {
 126          $response = array();
 127          $destemail = $this->_getDest($to);
 128          require_once 'Mail.php';
 129          $m = Mail::factory($this->_params['mailBackend'], $this->_params['mailParams']);
 130  
 131          if (isset($message['carrier'])) {
 132              $dest = $this->_getDest($to, $message['carrier']);
 133          } else {
 134              $dest = $this->_getDest($to);
 135          }
 136  
 137          $res =& $m->send($dest, $this->_params['mailHeaders'], $message['text']);
 138          if (PEAR::isError($res)) {
 139              $response[$to] = array(0, $res->getMessage());
 140          } else {
 141              $response[$to] = array(1, null);
 142          }
 143  
 144          return $response;
 145      }
 146  
 147      /**
 148       * Returns destination e-mail address.
 149       *
 150       * @param string $phone  Phone number to send to.
 151       *
 152       * @return string  Destination address.
 153       */
 154      function _getDest($phone, $carrier = null)
 155      {
 156          $carrier = is_null($carrier) ? $this->_params['carrier'] : $carrier;
 157          return sprintf($this->_carriers[$carrier],
 158                         preg_replace('/[^0-9]/', '', $phone));
 159      }
 160  
 161      /**
 162       * Returns the address template for a carrier.
 163       *
 164       * @param string $carrier  Carrier name.
 165       *
 166       * @return mixed  Address template or false.
 167       */
 168      function getAddressTemplate($carrier)
 169      {
 170          if (!isset($this->_carriers[$carrier])) {
 171              return false;
 172          }
 173          return $this->_carriers[$carrier];
 174      }
 175  
 176      /**
 177       * Adds a carrier to the list.
 178       *
 179       * Address templates need to be in the form of an email address, with a
 180       * '%s' representing the place where the destination phone number goes.
 181       *
 182       * @param string $name  Carrier name.
 183       * @param string $addr  Address template.
 184       */
 185      function addCarrier($name, $addr)
 186      {
 187          $this->_carriers[$name] = $addr;
 188      }
 189  
 190      /**
 191       * Returns a list of parameters specific for this driver.
 192       *
 193       * @return array Default sending parameters.
 194       */
 195      function getDefaultSendParams()
 196      {
 197          return array();
 198      }
 199  
 200  }


Généré le : Sun Feb 25 18:01:28 2007 par Balluche grâce à PHPXref 0.7