PHP দিয়ে কিভাবে টেক্সট মেসেজ পাঠানো যায়
SubscribeSign In
How-To Tutorials
Design & Illustration
Code
Web Design
Photo & Video
Business
Music & Audio
3D & Motion Graphics
Game Development
Computer Skills
Courses
Design & Illustration
Code
Web Design
Photo & Video
Business
Music & Audio
3D & Motion Graphics
eBooks
Design & Illustration
Code
Web Design
Photo & Video
Business
Music & Audio
3D & Motion Graphics
Pricing
Envato Elements
Envato Studio
Community
Help
Envato Elements
Envato Studio
Community
Forum
Help
Subscribe
Sign In
How-To Tutorials
Design & Illustration
Adobe Photoshop
Vector
Adobe Illustrator
Illustration
Inspiration
Tools & Tips
Graphic Design
Text Effects
News
Drawing
More Categories...Learning Guides
Code
Web Development
Mobile Development
WordPress
PHP
JavaScript
Flash
CMS
iOS SDK
Android SDK
News
More Categories...Learning Guides
Web Design
CSS
HTML & CSS
UI Design
HTML
Adobe Photoshop
UX
JavaScript
Complete Websites
Workflow
Design Theory
More Categories...Learning Guides
Photo & Video
Shooting
Adobe Photoshop
Post-Processing
Video
Photo Critique
Photography
How-To
Inspiration
Lighting
Adobe Lightroom
More Categories...Learning Guides
Business
How-To
Marketing
Freelance
Presentations
Planning
Communication
Software
Small Business
Microsoft PowerPoint
Careers
More Categories...Learning Guides
Music & Audio
Audio Production
General
Logic Pro
Workshops
Mixing & Mastering
Sound Design
Open Mic
Ableton Live
Reason
Recording
More Categories...Learning Guides
3D & Motion Graphics
Adobe After Effects
3D
Motion Graphics
3D Studio Max
Maya
Cinema 4D
Workflow
News
Visual Effects
Roundups
More Categories...Learning Guides
Game Development
Programming
Game Design
Platform Agnostic
Business
News
2D Games
Game Development
Unity
Flash
From Scratch
More Categories...Learning Guides
Computer Skills
OS X
How-To
App Training
Software
Presentations
Microsoft PowerPoint
Productivity
Microsoft
Tips & Shortcuts
Automation
More Categories...Learning Guides
Courses
Design & Illustration
Code
Web Design
Photo & Video
Business
Music & Audio
3D & Motion Graphics
Coming Soon
eBooks
Design & Illustration
Code
Web Design
Photo & Video
Business
Music & Audio
3D & Motion Graphics
Pricing
Advertisement
Code
PHP
PHP দিয়ে কিভাবে টেক্সট মেসেজ পাঠানো যায়
Advertisement
by Kevin Jensen24 Jan 2011
Difficulty:BeginnerLength:LongLanguages:Englishالعربية/عربيবাংলাEspañolHrvatskiBahasa IndonesiaItalianoPycckийShqipWikang TagalogTiếng Việt
PHPWeb DevelopmentBack-EndHTMLCSS
Bengali (বাংলা) translation by Arnab Wahid (you can also view the original English article)
টেক্সট মেসেজের প্রসার বিশ্বব্যাপী - এর ফলে অনেক ওয়েব অ্যাপেই এখন টেক্সট মেসেজ ইন্টিগ্রেশন করা হচ্ছে, যা ইভেন্ট, সেলস ও কুপনের খবর মোবাইলে পাঠাতে ব্যবহার করা হয়।
টিউটোরিয়ালে আমরা PHP দিয়ে টেক্সট মেসেজ পাঠানোর বেসিক দেখবো।
ওভারভিউ
টেক্সট মেসেজ (SMS) পাঠানো আসলে অনেক সহজ কাজ।
ওয়েব অ্যাপ্লিকেশনকে কিভাবে একটি ওয়্যারলেস ডিভাইসের সাথে যুক্ত করতে হয় তা নিচভে একটি ডায়াগ্রামে দেখানো হল।
আসুনে দেখে নেই - ধাপে ধাপে এখানে কি হচ্ছেঃ
মেসেজ ওয়েব অ্যাপ্লিকেশনে কম্পোজ করে স্টোর করা হয়, এরপর সেটি HTTP সার্ভার ব্যবহার করে ইন্টারনেটের মাধ্যমে ইমেইল হিসেবে সেন্ড করা হয়।
ইমেইলটি একটি এসএমএস গেটওয়ে দিয়ে রিসিভ করে (SMS Gateway) সেটিকে একটি এসএমএস এ কনভার্ট করা হয়।
এরপর এসএমএস টি একটি শর্ট মেসেজ সার্ভিস সেন্টারের (SMSC) মাধ্যমে মোবাইলে সেন্ড করা হয়।
এরপর ওয়্যারলেস নেটওয়ার্কের মাধ্যমে এসএমএস গ্রাহকের কাছে পৌঁছে যাবে।
সব ওয়্যারলেস নেটওয়ার্কেরই এসএমএস গেটওয়ে আছে, যেটা দিয়ে এই পদ্ধতিতে ইমেইলের মাধ্যে এসএমএস সেন্ড করা যায়। এই পদ্ধতি ব্যবহার করা ডেভেলাপারদের জন্য সুবিধার, কারণ ডেভেলাপারদের জন্য এটি ফ্রি। কিন্তু গ্রাহকদের জন্য ফ্রি না। প্রায় সময় গ্রাহকদের এই মেসেজের চার্জ দিতে হয়। এই এসএসএম নন নেটওয়ার্ক হলে এটার জন্য গ্রাহকদের খরচ দিতে হয়। নেটওয়ার্ক মেসেজ সাধারণ ফ্রি হয়ে থাকে।
ইমেইল টু এসএমএস
ইমেইল দিয়ে এসএমএস করতে দুইটি জিনিষ াগবেঃ
যেই ফোনে মেসেজ পাঠাবেন সেটার নাম্বার, বা ইউনিক আইডেন্টিফিকেশন নাম্বার
ওয়্যারলেস নেটওয়ার্কের ডোমাইন নেম (এই লিস্টে অনেক অ্যাড্রেস আছে)
এই কাজ একাধিক ক্যারিারের জন্য করা সম্ভবঃ
phoneNumber@domainName.com
phoneNumber হচ্ছে মোবাইলের নাম্বার, আর domainName.com হচ্ছে এমএসমএস গেটওয়ে নেটওয়ার্কের অ্যাড্রেস।
ইমেইল ক্লায়েন্টে 3855550168@vtext.com (উদাহরণ) অ্যাড করুন, মেসেজ টাইপ করে সেন্ড করুন। মেসেজ Verizon Wireless Network এর +1 (385) 555-0168 এর নাম্বারে পৌঁছে যাবে।
যেমন, আমি নিজেকে জিমেইল দিয়ে একটি মেসেজ পাঠাবো।
ফোনে এই মেসেজ আসার পরে এমন দেখা যাবেঃ
বাহ!
পিএইচপি mail ফাংশন
আসুন আরও এক ধাপ আগাই। এসএমএস গেটওয়ের মাধ্যমে পিএইচপি mail ফাংশন দিয়ে মেসেজ সেন্ড করা যায়। mail ফাংশনের সিগনেচার।
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
এটি সম্পর্কে বিস্তারিত এখানে।
$to দিয়ে মেসেজের রিসিভার ডিফাইন করা হয়। একটি কার্যকরী উদাহরণে যা থাকেঃ
user@example.com
user1@example.com, user2@example.com
User
User1  , User2
$subject এ মেসেজের সাব্জেক্ট থাকবে। কিন্তু এসএমএসে এর সাব্জেক্ট থাকা বাধ্যতামূলক না।
$message এ যেই মেসেজ সেন্ড করবেন সেটা। পিএইচপি ম্যানুয়ালে যেমন লেখা ছিলো। "প্রতি লাইন LF দিয়ে সেপারেটেড থাকবে (\n)। প্রতি লাইনে ৭০ অক্ষরের বেশি থাকতে পারবে না।
আগের ফাংশনালিটি রেপ্লিকেট করতে আমরা এই কোড ব্যবহার করবঃ
mail( '3855550168@vtext.com', '', 'Testing' );
টেস্ট রান
আসুন টেস্ট করে দেখি mail ফাংশন দিয়ে আসলেই মেসেজ ডেলিভারি হল কিনা। আমরা যেই কোড রান করলামঃ

ফোনে আসা মেসেজ দেখতে এইরকমঃ
Error পেলে troubleshooting সেকশন চেক করুন।
উপরে যেই মেসেজটা দেখলাম, সেটায় লেখা যে সেটা Gmail থেকে আসা। কারণ আউটগোয়িং সব মেসেজ লোকাল সার্ভার থেকে রাউট করা। এটা টিউটোরিয়াল লেখার সময় আমি From হেডারের ভ্যালু চেঞ্জ করে সেটায় অলটারনেট অ্যাড্রেস বসাতে পারিনি। তাই এসএমএস গেটওয়ে তে ইমেইল হেডারের ডাটাই রয়ে গেছে। আপনার কাছে এর সমাধান থাকলে আমাদের অবশ্যই কমেন্ট করে জানান যেন অন্যরাও উপকৃত হয়!
ইউজেবিলিট অ্যাড করা
মার্কআপ
আসুন ইন্টারফেসে কোড র‍্যাপ করি। একটি ফর্ম সেটাপ করবঃ
Sending SMS with PHP         Phone Number        Carrier         Message
স্টাইল
কিছু সিএসএস অ্যাড করিঃ
body { margin: 0; padding: 3em 0; color: #fff; background: #0080d2; font-family: Georgia, Times New Roman, serif; } #container { width: 600px; background: #fff; color: #555; border: 3px solid #ccc; -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; border-radius: 10px; border-top: 3px solid #ddd; padding: 1em 2em; margin: 0 auto; -webkit-box-shadow: 3px 7px 5px #000; -moz-box-shadow: 3px 7px 5px #000; -ms-box-shadow: 3px 7px 5px #000; box-shadow: 3px 7px 5px #000; } ul { list-style: none; padding: 0; } ul > li { padding: 0.12em 1em } label { display: block; float: left; width: 130px; } input, textarea { font-family: Georgia, Serif; }
এতে আমরা একটি সিম্পল ফর্ম পাবোঃ
স্ক্রিপ্ট
এটার মধ্যে সবচেয়ে ইম্পর্টেন্ট হচ্ছে পিএইচপি স্ক্রিপ্ট। সেটি আমরা এখন লিখবোঃ

স্ক্রিপ্টটি প্রথমে দেখবে যে ফর্মটি সাবমিট হয়েছে কিনা।
হলে, চেক করবে phoneNumber, carrier এবং smsMessage ভ্যারিয়েবল্গুলো সেন্ড হয়েছে কিনা। পেজে একটির বেশি ফর্ম থাকলে এই ধাপটি কাজে আসবে।
phoneNumber, carrier এবং smsMessage থাকলে, যদি phoneNumber এবং carrier খালি না থাকে, তবে মেসেজ সেন্ড করার চেষ্টা করা হবে।
mail ফাংশনে মেসেজ আর্গুমেন্ট প্রতি লাইনে ৭০ ক্যারেক্টারের বেশি হতে পারবে না। wordwrap ফাংশন দিয়ে মেসেজ প্রতি লাইনে ৭০ ক্যারেক্টার করে ভাগ করে নেয়া যায়।
mail ফাংশন কল করে phoneNumber ও carrier কনক্যাটনেট করা হয়।
ডাটা মিসিং থাকলে বা ভ্যালিডেট না হলে Not all information was submitted মেসেজ আসবে।
এরপর, mail ফাংশন থেকে সাকসেসফুল না আনসাকসেসফুল মেসেজ আসবে। সেই ভ্যালু $result ভ্যারিয়েবলে জমা হবে যেন পরে চেক করা যায় যে মেসেজ গিয়েছে কি না।
নোটঃ mail মেথড দিয়ে শুধু বোঝা যায় যে মেসেজ গিয়েছে কি যায়নি। প্রাপকের ডিভাইসে মেসেজ পৌছেছে কিনা তা বোঝা যায়না।
ফাইনাল কোড
<?php if ( isset( $_REQUEST ) && !empty( $_REQUEST ) ) { if ( isset( $_REQUEST['phoneNumber'], $_REQUEST['carrier'], $_REQUEST['smsMessage'] ) && !empty( $_REQUEST['phoneNumber'] ) && !empty( $_REQUEST['carrier'] ) ) { $message = wordwrap( $_REQUEST['smsMessage'], 70 ); $to = $_REQUEST['phoneNumber'] . '@' . $_REQUEST['carrier']; $result = @mail( $to, '', $message ); print 'Message was sent to ' . $to; } else { print 'Not all information was submitted.'; } }
?>         body { margin: 0; padding: 3em 0; color: #fff; background: #0080d2; font-family: Georgia, Times New Roman, serif; } #container { width: 600px; background: #fff; color: #555; border: 3px solid #ccc; -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; border-radius: 10px; border-top: 3px solid #ddd; padding: 1em 2em; margin: 0 auto; -webkit-box-shadow: 3px 7px 5px #000; -moz-box-shadow: 3px 7px 5px #000; -ms-box-shadow: 3px 7px 5px #000; box-shadow: 3px 7px 5px #000; } ul { list-style: none; padding: 0; } ul > li { padding: 0.12em 1em } label { display: block; float: left; width: 130px; } input, textarea { font-family: Georgia, Serif; }          Sending SMS with PHP         Phone Number        Carrier         Message
ট্রাবলশুটিং
Localhost Error
mail ফাংশন ব্যবহার করতে লোকাল সার্ভার অন রাখতে হয়। ওয়েব হোস্টে রান করলে কোন সমস্যা নেই। শিওর না হলে অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন। পিসির ক্ষেত্রেও একই ব্যাপার প্রযোজ্য। যদি এমন এরর দেখেন...
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\sms\mail-test.php
মেইল সার্ভার ইন্সটল করে কনফিগার করতে হবে। এটি আমাদের টিউটোরিয়ালের আওতার বাইরে। লোকাল মেশিনে XAMPP এর মত কিছু ব্যবহার করে এই সমস্যা সমাধান করা যায়। অথবা WAMP, MAMP বা LAMP (বা SAMP বা OAMP, ইত্যাদি) এর উপর Mercury Mail রান করুন।
PHPMailer
আরেকটি বিকল্প হচ্ছে PHPMailer। PHPMailer এর সাথে Gmail's SMTP ব্যবহার করে যেভাবে মেসেজ করা যায়।
এর জন্য স্ক্রিপ্টে একটি ক্লাস অ্যাড করতে হয়।
require 'class.phpmailer.php'; // Instantiate Class $mail = new PHPMailer(); // Set up SMTP $mail->IsSMTP(); // Sets up a SMTP connection $mail->SMTPDebug = 2; // This will print debugging info $mail->SMTPAuth = true; // Connection with the SMTP does require authorization $mail->SMTPSecure = "tls"; // Connect using a TLS connection $mail->Host = "smtp.gmail.com"; $mail->Port = 587; $mail->Encoding = '7bit'; // SMS uses 7-bit encoding // Authentication $mail->Username = "email.address@gmail.com"; // Login $mail->Password = "password"; // Password // Compose $mail->Subject = "Testing"; // Subject (which isn't required) $mail->Body = "Testing"; // Body of our message // Send To $mail->AddAddress( "##########@vtext.com" ); // Where to send it var_dump( $mail->send() ); // Send!
এমন কিছু প্রিন্ট হবেঃ
এটা সেটাপ করতে একটু বেশি সময় লাগে। জিমেইল বা গুগল ব্যবহার করতে চাইলে সে ব্যাপারে তথ্য - information on connecting।
পরিশেষ
ওয়েব অ্যাপ্লিকেশন থেকে এসএমএস পাঠানোর অনেক রকম উপায় আছে। এই মেথডে লো ভলিউল মেসেজ করা যায় (মাসে ১০০০ এর বেশি না)। এটা বানাতে ডেভেলাপারদের বেশি খরচও হয়না। অন্য উপায়গুলো হচ্ছেঃ
এসএমএস গেটওয়ে প্রোভাইডার
Google search করেও অনেক উপায় পাওয়া যায়।
অনেক এসএমএস গেটওয়ে প্রোভাইডার ওয়েবঅ্যাপ্লিকেশন দিয়ে এসএমএস পাঠাতে API সরবরাহ করে থাকে।
মাসে ১০০০ এর বেশি মেসেজ পাঠাতে হলে কোন অনলাইন সার্ভিস কিনে ব্যবহারও করা যায়।
একটি শর্টকোড নাম্বার ভাড়া করতে পারেন।
জিএসএম মডেম ব্যবহার করে
এতে খরচ ও সময় বেশি লাগে, আর টেলিকমিউনিকেশন প্যাকেজ ব্যবহার করে মেসেজ পাঠাতে হবে।
সাথে AT (Hayes) command set ব্যবহার করতে হবে।
ওয়্যারলেস নেটওয়ার্কের ডায়রেক্ট কানেকশন ব্যবহার করতে অনেক দরদাম করতে হয় আর টাকাও বেশি লাগে।
এই টিউটোরিয়ালটি এই কাজের জন্য পরিপূর্ণ নয়, কিন্তু কাজ শুরু করতে এটি একটি চমৎকার স্টার্টিং পয়েন্ট! আশা করি এটা আপনার ভালো লেগেছে। পড়ার জন্য ধন্যবাদ।
Advertisement
Kevin Jensen
My name is Kevin Jensen. I love video games and love making them. I want to share that love. This site/blog is devoted to sharing my thoughts about video games and also information about making video games. I do this in hopes of helping others to achieve their dreams of also making games.
Feed
Like
Follow
Follow
Weekly email summary
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Update me weekly
Advertisement
Translations
Envato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Translate this post
Powered by
Advertisement
Watch any
course now
Subscribe to Access
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.
WordPress Plugins
From $4
PHP Scripts
From $1
JavaScript
From $2
Mobile App Templates
From $4
Unlimited Downloads
From $29/month
Get access to over 400,000 creative assets on Envato Elements.
Over 9 Million Digital Assets
Everything you need for your next creative project.
Hire a Freelancer
Choose from 2,000 professionals ready to do the work for you.
Join the Community
Share ideas. Host meetups. Lead discussions. Collaborate.
Envato Tuts+
About Envato Tuts+
Terms of Use
Advertise
Join our Community
Teach at Envato Tuts+
Translate for Envato Tuts+
Forums
Help
FAQ
Help Center
25,113
Tutorials
1,088
Courses
18,624
Translations
Envato.com
Our products
Careers
© 2017 Envato Pty Ltd. Trademarks and brands are the property of their respective owners.
Follow Envato Tuts+