Sms

Send SMS

Returns an eSms object, which handles defining and sending sms messages.

Object can be created through the resource -method: get

Arguments

$param
array SMS parameters

Example

$this->get('sms', Array(
  'from' => 'myPhone',
  'to' => 'yourPhone',
  'body' => 'SMS message'
))->send();

Sending message

Basic use

Send an SMS to a given number:

$this->get('sms', Array(
  'from' => 'myPhone',
  'to' => 'yourPhone',
  'body' => 'SMS message'
))->send();

Or use set methods:

$this->get('sms')
  ->setTo('+358408255925')
  ->setMessage('SMS message')
  ->send();

Setting values from page

You can set the numbers by giving the corresponding fields:

$this->get('sms')
  ->setFrom($Order->seller->phone)
  ->setTo($Order->client->phone)
  ->setMessage("You got our offer, didn't you?")
  ->addMessage("Regards: ",$Order->seller->name)
  ->send();

Setting multiple addresses

All value adding methods (setTo() addTo()) can have multiple arguments. These examples will add numbers from both variables (if they have a valid phone number in them).

$Sms = $this->get('sms');
$Sms->setTo( $customerPhone , $sellerPhone );
$Sms->addTo( $customerPhone , $sellerPhone );

Address field arguments are interpreted through an phone number validator -method. Numbers can be set in array or comma/semicolon/colon -separated string. Different input forms come in handy if addresses are already in one of those formats.

All examples below add two numbers into the 'to' -field:

$Sms = $this->get('sms');
$Sms->setTo('+358 40 8255 925','+358 40 1234 567');
$Sms->setTo('+358 40 8255 925,+358 40 1234 567');
$Sms->setTo('+358 40 8255 925:+358 40 1234 567');
$Sms->setTo('+358 40 8255 925;+358 40 1234 567');
$Sms->setTo(Array('+358 40 8255 925','+358 40 1234 567'));

Defining optional addresses

setTo() will clear the old values and add new ones, IF given argument(s) has at least one valid number. If it doesn't, the old value will be conserved.

$Sms = $this->get('sms')
  ->setTo( $validNumber , $validNumber2 )
  ->setTo( $invalidNumber );
-->
Will send to: $validNumber, $validNumber2
Because $invalidNumber is ignored.

$Sms = $this->get('sms')
  ->setTo( $validNumber )
  ->setTo( $validNumber2 );
-->
Will send to: $validNumber2
Because $validNumber is overwritten by $validNumber2.

$Sms = $this->get('sms')
  ->setTo( $validNumber )
  ->setTo( $invalidNumber , $validNumber2 );
-->
Will send to: $validNumber2
Because sencond to() has a valid number in $validNumber2 and $validNumber is overwritten. $invalidNumber is ignored.

$Sms = $this->get('sms')
  ->setTo( $validNumber , $validNumber2 )
  ->setTo( $validNumber3 );
-->
Will send to: $validNumber3
Because $validNumber and $validNumber2 are overwritten by $validNumber3.

$Sms = $this->get('sms')
  ->setTo( $validNumber )
  ->setTo( $validNumber2 , $validNumber3 );
-->
Will send to: $validNumber2 , $validNumber3
Because $validNumber is overwritten by $validNumber2 and $validNumber3

Setting message text

Values can be added the same way also for the message.

$Sms = $this->get('sms')
  ->setMessage('Message base','Additional information');
-->
Message will be:
  Subject base
  Additional information

Multiple values will be combined using the field's delimiter. Default delimiter can be changed with setFieldnameDelimiter() -method.

$Sms = $this->get('sms')
    ->setMessageDelimiter(': ')
    ->setMessage('Message base','Additional information');
-->
Message will be: 'Subject base: Additional information'

Full method list

Common methods

Method  Return value  Description
send() bool  Sends the message
::getPhoneNumbers(val) array Extracts all valid phone numbers from given argument(s). Argument can be array(val,val) or string: 'val,val', 'val:val', 'val:val'.

Field methods

All fields have methods that act in the same way. (Replace the 'Fieldname' with the field that you want to handle). Methods that return 'this' are chainable.

Method  Return value  Description
setData(array) this Set to, from etc. values from associative array.
fieldname(val) this  -> setFieldname(val) 
fieldname() array -> getFieldname() 
getFieldname() array Get values in array.
setFieldname(val) this Clears value and sets new value(s), IF valid value is given.
addFieldname(val) this Adds valid value(s).
clearFieldname() this  Clears all values in field.
hasFieldname()  bool  Return true if field has a value.
countFieldname()  int  Return number of values set to field.
setFieldnameDelimiter() this Set a delimiter used to combine two or more arguments.

Fields

Field Type Delimiter  Description
from string Sender name or phone number.
to number comma  Receivers phone number(s).
body  string newline Message text.
footer  string  space  Message end text.
description string newline Additional description (Is saved to log)
reference string newline Additional reference (Is saved to log)

Alternative field names

The class supports alternative field names (for semantic and language reasons). It makes no difference whether you use the original or the alternative name. ie. $sms->setFrom( $phone ) is same as writing $sms->setSender( $phone ).

Field Optional names  Finnish equivalents
from sender  lahettaja
to receiver,number vastaanottaja
body  message, content, text viesti
footer