1. Go to this page and download the library: Download yasser-elgammal/lara-sms library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
yasser-elgammal / lara-sms example snippets
use YasserElgammal\LaraSms\Facades\LaraSms;
use Illuminate\Support\Facades\Log;
// Send a quick SMS
$result = LaraSms::quickSend('201234567890', 'Hello World!');
if ($result->success) {
Log::debug("SMS sent! Message ID: {$result->messageId}");
} else {
Log::debug("Failed: {$result->error}");
}
use YasserElgammal\LaraSms\Facades\LaraSms;
LaraSms::quickSend('201234567890', 'Your OTP is 123456');
LaraSms::builder()
->to('201234567890')
->from('MyApp')
->text('Your verification code is: 123456')
->send();
LaraSms::builder()
->to('201234567890') // Set recipient (('Hello!') // Set message text (
LaraSms::builder()
->to('201234567890')
->text('Hello World !')
->metadata([
'language' => '2', // 1=Eng, 2=Arabic, 3=Unicode
'environment' => '1', //1=Live, 2=Test
'delay_until' => '2025-12-31 23:59:00' // example if message scheduling
])->gateway('smsmisr')->send();
// Strategy 1: Try All Gateways
// Attempts all gateways until one succeeds
LaraSms::builder()
->to('201234567890')
->text('Hello!')
->useFallback(FallbackStrategy::TRY_ALL)
->send();
// Or use helper
LaraSms::builder()
->to('201234567890')
->text('Hello!')
->tryAll()
->send();
// Strategy 2: Fail Fast (Default)
// Stops on first non-retryable error
LaraSms::builder()
->to('201234567890')
->text('Hello!')
->useFallback(FallbackStrategy::FAIL_FAST)
->send();
// Or use helper
LaraSms::builder()
->to('201234567890')
->text('Hello!')
->failFast()
->send();
// Use specific gateway order
LaraSms::builder()
->to('201234567890')
->text('Hello!')
->gateways(['jawaly', 'twilio', 'vonage']) // Custom order
->send();
// Use only one gateway (no fallback)
LaraSms::builder()
->to('201234567890')
->text('Hello!')
->gateway('jawaly') // Only Jawaly, fail if it fails
->send();
// Restrict to specific gateways
LaraSms::builder()
->to('201234567890')
->text('Hello!')
->gateways(['jawaly', 'twilio']) // Skip others
->send();
// Prefer cheaper gateway (local) first
SMS::builder()
->to('201234567890')
->text('Marketing message')
->gateways(['smsmisr']) // Local only
->send();
// Regional preference
SMS::builder()
->to('201234567890')
->text('Important message')
->gateways(['jawaly', 'smsmisr', 'twilio']) // Local first, then international
->send();
// Quality vs Cost trade-off
SMS::builder()
->to('201234567890')
->text('Verification code')
->gateways(['twilio', 'vonage', 'jawaly']) // Premium first, fallback to budget
->send();
$result = SMS::builder()
->to('201234567890')
->text('Hello!')
->send();
// Result properties:
$result->success; // bool - Did it succeed?
$result->messageId; // ?string - ID from gateway
$result->gateway; // ?string - Which gateway succeeded
$result->error; // ?string - Error message if failed
$result->attempts; // array - All attempts made
// Example usage
use Illuminate\Support\Facades\Log;
if ($result->success) {
Log::debug("✅ Message sent via {$result->gateway}");
Log::debug("📧 Message ID: {$result->messageId}");
} else {
Log::debug("❌ All gateways failed");
Log::debug("📋 Error: {$result->error}");
// Check attempts
foreach ($result->attempts as $attempt) {
Log::debug(
$attempt['gateway'] . ': ' .
($attempt['success'] ? '✓' : '✗ ' . $attempt['error'])
);
}
}
bash
php artisan vendor:publish --tag=sms-config
bash
php artisan config:cache
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.