Sending mail with Gmail’s SMTP server with fsockopen

Today i was trying to find a way to send mail from my localhost (xampp) with Gmails SMTP server. I found some code in popular and also fastest forum engine – punBB.

I got the codes and did some cleanup for working fine as an external script. Here is the codes -

<?php

//this functin processes the server return codes and generates errors if needed
function server_parse($socket, $expected_response)
{
	$server_response = '';
	while (substr($server_response, 3, 1) != ' ')
	{
		if (!($server_response = fgets($socket, 256)))
			echo 'Couldn\'t get mail server response codes. Please contact the forum administrator.', __FILE__, __LINE__;
	}

	if (!(substr($server_response, 0, 3) == $expected_response))
		echo 'Unable to send e-mail. Please contact the forum administrator with the following error message reported by the SMTP server: "'.$server_response.'"', __FILE__, __LINE__;
}

//
// This function was originally a part of the phpBB Group forum software phpBB2 (http://www.phpbb.com).
// They deserve all the credit for writing it. I made small modifications for it to suit PunBB and it's coding standards.
// -------> This message is from punBB developer
//
function smtp_mail($to, $subject, $message, $headers = '')
{
	$recipients = explode(',', $to);
	$user = '<your mail id>';
	$pass = '<your password>';
	$smtp_host = 'ssl://smtp.gmail.com';
	$smtp_port = 465;

	if (!($socket = fsockopen($smtp_host, $smtp_port, $errno, $errstr, 15)))
		echo "Could not connect to smtp host '$smtp_host' ($errno) ($errstr)", __FILE__, __LINE__;

	server_parse($socket, '220');

	fwrite($socket, 'EHLO '.$smtp_host."\r\n");
	server_parse($socket, '250');

	fwrite($socket, 'AUTH LOGIN'."\r\n");
	server_parse($socket, '334');

	fwrite($socket, base64_encode($user)."\r\n");
	server_parse($socket, '334');

	fwrite($socket, base64_encode($pass)."\r\n");
	server_parse($socket, '235');

	fwrite($socket, 'MAIL FROM: <tareq1988@gmail.com>'."\r\n");
	server_parse($socket, '250');

	foreach ($recipients as $email)
	{
		fwrite($socket, 'RCPT TO: <'.$email.'>'."\r\n");
		server_parse($socket, '250');
	}

	fwrite($socket, 'DATA'."\r\n");
	server_parse($socket, '354');

	fwrite($socket, 'Subject: '.$subject."\r\n".'To: <'.implode('>, <', $recipients).'>'."\r\n".$headers."\r\n\r\n".$message."\r\n");

	fwrite($socket, '.'."\r\n");
	server_parse($socket, '250');

	fwrite($socket, 'QUIT'."\r\n");
	fclose($socket);

	return true;
}

// Send the mail
if(smtp_mail('tareq1988@gmail.com', 'Hi! Test Mail', 'This is a test mail from xampp with fsockopen()'))
{
	echo "Mail sent";
}
else
{
	echo "Some error occured";
}
?>
Tags: , , ,

উবুন্টুর মুশকিল আসানঃ উবুন্টুর সব ঝামেলার বাংলা সমাধান

প্রথমেই একটা কথা বলে নেই, এই লেখাটা একইসাথে বিজ্ঞাপনধর্মী এবং আবেদনধর্মী। আপনি যদি বিজ্ঞাপনকে অতিশয় ঘৃণা করেন তবে আমরা দুঃখিত এই বিজ্ঞাপন প্রচারের জন্য, তারপরও অনুরোধ করবো সামান্য সময় নষ্ট করে একটু কষ্ট করে পড়ুন। আর যদি বিজ্ঞাপনের ফ্যান হন তাহলেও আমরা দুঃখিত, কারন এইটা আমাদের লেখা জীবনের প্রথম বিজ্ঞাপন (জীবনের প্রথম আবিষ্কারে বিজ্ঞানী এডিসনও হোঁচট খেয়েছেন, আর আমরাতো গোনাতেই পড়িনা), তাই এই লেখায় আহামরি কিছু পাবেননা, তারপরও একই অনুরোধ করবো যে সামান্য সময় নষ্ট করে একটু কষ্ট করে পড়ুন। এখন আসুন কেন আমরা একে বিজ্ঞাপনধর্মী এবং আবেদনধর্মী বললাম। এই লেখাটা বিজ্ঞাপনধর্মী তাদের জন্য যারা “উবুন্টু” শব্দটার সাথে পরিচিত না। আর “আবেদনধর্মী” তাদের জন্য যারা “উবুন্টু ব্যবহারকারি”। আপনি যদি প্রথমভাগে পড়েন অর্থাৎ যদি আপনি একজন উবুন্টু ইউজার হন তবে ইচ্ছা করলে এই লেখাটার প্রথমভাগকে উপেক্ষা করে সরাসরি দ্বিতীয়ভাগে যেতে পারেন, তবে না যেতেই পরামর্শ দেব। আর যদি দ্বিতীয় ভাগে পড়েন অর্থাৎ উবুন্টু কি তা জানেননা তবে প্রথম ভাগটা অবশ্যই পড়বেন কিন্তু।

প্রথম ভাগঃ
উবুন্টু হচ্ছে বর্তমান বিশ্বের সবচেয়ে জনপ্রিয় একটা লিনাক্স ডিস্ট্র। লিনাক্স নিয়ে আমাদের সবারই একটা ভুল ধারনা যে এটি অতি কঠিন জিনিস। অস্বীকার করবনা, এককালে এটা অপারেট করা আমার আপনার মত সাধারন মানুষের কম্ম ছিলনা, কিন্তু এখন দিন পাল্টেছে। লিনাক্সকে ভিত্তি করে গড়ে উঠা উবুন্টু নামের এই অপারেটিং সিস্টেমটি লিনাক্সের কঠিন ভাবমূর্তিকে একেবারে দূর করে দিয়ে সাধারনের ব্যবহারের উপযোগী করে ফেলেছে। এটি দিয়ে অফিসের (লেখালেখি, হিসেবনিকেশ, প্রেজেনটেশন) কাজ কর্ম, গান শোনা, ভিডিও দেখা, গেম খেলা, ইন্টারনেট ব্রাউজ করা, আঁকাআঁকি করা – সবই করতে পারবেন। বোনাস হিসেবে পাবেন ভাইরাস, স্পাইওয়ার, এডওয়ার ইত্যাদি হাবিজাবি মেজাজ খারাপ করা জিনিস থেকে মুক্ত থাকার আনন্দ! সবচেয়ে বড় কথা হল, এই উবুন্টু একেবারে ফ্রি। এইবার একটু আঁতলামি কথাবার্তা, কিন্তু কথাবার্তাগুলো চিন্তার বিষয়। আমরা যেসব সফটওয়ার ব্যবহার করি বাংলাদেশে সেগুলোকে ইংলিশে বলা হয় “পাইরেটেড সিডি” বা বাংলায় যেটাকে বলা হয় “চোরাই সিডি”। সোজা কথায় আমরা চুরি করা জিনিস ব্যবহার করছি। অন্যদিকে উবুন্টু হচ্ছে একদমই মাগনা এবং সেটা বৈধভাবেই। তাই এটা ব্যবহার করলে কেউ আমাকে চোরও বলবেনা। তাছাড়া উবুন্টু হচ্ছে লিনাক্সবেজড অপারেটিং সিস্টেম অর্থাৎ যে স্ট্যাবিলিটি আর পার্ফরম্যান্সের জন্য লিনাক্স আজ বিশ্বের সিংহভাগ সুপার কম্পিউটার আর সার্ভারে ব্যবহার করা হয় সেই স্ট্যাবিলিটি আর পার্ফরম্যান্সকে পাচ্ছেন আপনার ডেস্কটপে। সত্যিকারের এক অপারেটিং সিস্টেম হচ্ছে উবুন্টু।

এই উবুন্টুকে নিয়েই আমরা একটা ব্লগ খুলেছি, যেখানে বাংলায় উবুন্টু নিয়ে সবরকম কথা বার্তা হবে। ব্লগটির নাম উবুন্টুর মুশকিল আসান। তাই আপনি যদি উবুন্টুর জগতে নতুন হন বা উবুন্টুর জগতে যোগ দিতে চান তবে অবশ্যই একটু ঘুরে যান ব্লগটি থেকে।

দ্বিতীয় ভাগঃ

আপনি যদি উবুন্টু ব্যবহারকারি হন তবে উবুন্টুর মুশকিল আসান ব্লগটিতে আপনাকে স্বাগতম জানাই। বাংলাদেশের বেশিরভাগ উবুন্টু ব্যবহারকারিই কিন্তু উইন্ডোজ থেকেই আসে। তাই নতুন একটা সিস্টেমে এসে সমস্যায় পড়াটাই স্বাভাবিক। একজন উইন্ডোজ ব্যবহারকারি যেমন তার আশপাশে অনেক উইন্ডোজ ব্যবহারকারি পায় যে কোন সমস্যা সমাধান করার জন্য, উবুন্টুর ক্ষেত্রে চিত্রটা সেরকম না। যদিও ইদানিং উবুন্টু ইউজার আগের তুলনায় অনেক বেড়েছে তারপরও উইণ্ডোজ ব্যবহারকারিদের মত অলিতে গলিতে পাওয়া যায়না। তাছাড়া উইন্ডোজের সবসমস্যার সমাধান হিসেবে সর্বাধিক প্রচলিত পন্থা হচ্ছে উইন্ডোজ রিইন্সটলেশন। আমরা এ পদ্ধতিকে একেবারে নিরুৎসাহিত করি, কারন এটা কোন সমাধান না। মাথা ব্যাথা করলে মাথা কেটে নতুন মাথা লাগানোটা কি কোন সমাধান হয়? হয়না। তাই আমরা চাইনা উবুন্টুর কমিউনিটিও এভাবে গড়ে উঠুক। তাছাড়া সবাই যে সব কিছু জানে সেটাও তো হবার নয়। হয়তো আপনি এমন সব টিপস জানেন যেটা আবার আরেক জন জানেননা বা উল্টোটাও হতে পারে। তো সেইসব টিপস-এন্ড-ট্রিক্স জানা বা জানানোর জন্য তো একটা জায়গা দরকার। আর তার উপর সেই জায়গাটার সব যদি হয় বাংলায় তাহলে তো কথাই নাই। তাই বাংলা ভাষাভাষী সব উবুন্টু ব্যবহারকারিদের কথা মাথায় রেখেই আমরা উবুন্টু বিষয়ক একটা কমন ব্লগ করেছি।

আপনি ইচ্ছে করলেই যেকোন সমস্যার সমাধান বা উবুন্টু সম্পর্কিত বিভিন্ন লেখা লিখে এই ব্লগে অবদান রাখতে পারেন। বিস্তারিত পাবেনএখানে। হতে পারে লেখাটি আগে বিভিন্ন ফোরামে অথবা সাইটে প্রকাশিত হয়েছে, অথবা হতে পারে আপনার স্বকীয় কোন লেখনী। যেটাই হোক, আপনি তথ্যসূত্র উল্লেখ করে উবুন্টু/লিনাক্স সম্পর্কিত যেকোন লেখা এখানে প্রকাশ করতে পারেন। এতে করে সাধারণ অনেক উবুন্টু ব্যবহারকারিরাই উপকৃত হবে।

তাহলে আর কথা বাড়াচ্ছিনা। ব্লগটার একটা ফাইনাল এ্যাড দিয়ে শেষ করছি এই লেখাটা। উবুন্টুর মুশকিল আসান ব্লগে আপনার সাথে দেখা হচ্ছে তাহলে!

ফাইনাল এ্যাডঃ
আপনি উবুন্টুকে জানতে চান?
উবুন্টুতে আসতে চাচ্ছেন কিন্তু ভয়ে আসতে পারছেন না?
আপনি উবুন্টুতে সমস্যায় পড়েছেন?
আপনার উবুন্টু সম্পর্কিত জ্ঞান কারো সাথে শেয়ার করতে পারছেন না?
তাহলে আপনার জন্যই রয়েছে “উবুন্টুর মুশকিল আসান”।
এটি সম্পুর্ন রঙ্গীন এবং বাংলা ভাষায় ইউনিকোড সমর্থিত উবুন্টু বিষয়ক ব্লগ!
আপনি আসুন। আপনার বন্ধুদেরও আসতে বলুন।

লিখেছেনঃ অভ্রনীল

বাংলা তারিখ ভুলে যান? আর ভোলার চান্স নাই

বাংলা তারিখ নিয়ে প্রথমে কাজ করেছিলাম প্রজন্ম ফোরামের জন্যে। সেখানে হেডারে প্রতিদিনের বাংলা তারিখ দেখানো হয়। এরপর করলাম একটা জাভাস্ক্রিপ্ট উইজেট, যেটা দিয়ে আপনি আপনার যেকোন সাইটে বাংলা তারিখ যুক্ত করতে পারেন। অনেকদিন ধরেই চিন্তা করছিলাম ফেসবুকের জন্যে একটা অ্যাপ্লিকেশন বানালে মন্দ হয় না, কিন্তু সময় আর করে উঠতে পারিনি।

ফেসবুকে বাংলা তারিখ

ফেসবুকে বাংলা তারিখ

এই অ্যাপ্লিকেশন দিয়ে আপনি আপনার ফেসবুকের প্রোফাইলে আজকের বাংলা তারিখটি দেখাতে পারবেন। অ্যাপ্লিকেশনটি রয়েছে এখানে http://apps.facebook.com/bangladate/

বাংলাদেশের ইন্টারনেট রেডিও শুনুন সহজেই

ইদানিং বেশকিছু রেডিও মাথাচাড়া দিয়ে উঠেছে ইন্টারনেটে এবং এগুলা বাংলা ভাষাভাষী মানুষের জন্যে। সবগুলাতেই বাংলা গান প্রচার হয়। তবে প্রত্যেক রেডিও শোনার জন্যে তাদের সাইটে রাখা প্লেয়ারের মাধ্যমে শুনতে হয়। কিন্তু আপনাদের জন্যে সুখবর, প্রতিটা রেডিওর সরাসরি লিংক আপনাদের জন্যে আমি উপস্থাপন করছি। যেকোন মিডিয়া প্লেয়ারে ঠিকানা গুলো পেস্ট করে দিয়েই আপনি রেডিও শুনতে পাবেন বলে আশা রাখি। তবে ব্যক্তিগতভাবে আমি Screamer Radio ব্যবহার করি এবং আমার অনেক পছন্দের। এই প্লেয়ার দিয়ে আপনি গান শোনার পাশাপাশি রেকর্ডও করতে পারবেন। নিচের সব রেডিও-ই Screamer Radio দিয়ে টেস্ট করে দেখা হয়েছে। শুধু Radio NorthStar এ একটু সমস্যা আছে। এইটা প্লে করার জন্যে মিডিয়া প্লেয়ার লাগে।

রেডিও ফুর্তি
ওয়েবঃ http://radiofoorti.fm/
রেডিওঃ http://free.freeshoutcast.com:2826/

রেডিও টুডে
ওয়েবঃ http://radiotodaybd.fm/
রেডিও(ঢাকা স্টেশন): http://122.248.11.50:8000
রেডিও(চট্টগ্রাম স্টেশন): http://122.248.11.51:8000

রেডিও গুনগুন
ওয়েবঃ http://www.radiogoongoon.com/
রেডিও (HD): http://69.39.233.135:8888/
রেডিও (32 বিট): http://69.39.233.135:8032/

রেডিও ঢাকা
ওয়েবঃ http://www.radiodhaka.net/
রেডিওঃ http://202.4.100.2:8000

রেডিও লেমন
ওয়েবঃ http://www.lemon24.com/
রেডিওঃ http://115.127.14.58:8000

রেডিও তুফান
ওয়েবঃ http://www.radio2fun.com/
রেডিওঃ http://67.228.101.162:7600

অনুভূতি রেডিও
ওয়েবঃ http://www.onubhuti.com/
রেডিওঃ http://75.126.219.187:8205

অনিয়ম অনলাইন রেডিও
ওয়েবঃ http://www.oniyom.com/
রেডিওঃ http://teksea.homeip.net:8000

রেডিও সামথিং (বন্ধ আছে)
ওয়েবঃ http://www.radiosomethingbd.com/
রেডিওঃ http://115.124.98.144:8000

আড্ডা রেডিও
ওয়েবঃ http://www.addaradio.com/
রেডিওঃ http://67.212.189.122:8076

রেডিও আড্ডা
ওয়েবঃ http://www.radioadda.net/
রেডিও http://shared.streamwebtown.com/RadioAdda

অনলাইন গান
ওয়েবঃ http://www.onlinegaan.com/
রেডিওঃ http://69.39.233.135:8400

রেডিও ইনফিনিটি
ওয়েবঃ http://www.radioinfinity24.com/
রেডিওঃ http://69.39.233.135:8444

রেডিও নর্থস্টার
ওয়েবঃ http://www.radio-northstar.com/
রেডিওঃ http://c2.php-radio.com/link/stream/index.php?station=northstar

মজা করে শুনুন বাংলাদেশী রেডিও

যে কোন সাইটে দেখান বাংলা তারিখ

আপনারা জানেন, পানবিবির জন্যে আমি বাংলা তারিখের একটা এক্সটেনশন বানিয়েছি। তারপর চিন্তা করলাম যে কোন সাইটে লাগানোর ব্যবস্থা করলে মন্দ হয় না। তাই, সব ওয়েব সাইটে যাতে বাংলা তারিখ দেখানো যায় সেই জন্যে আজ একটা জাভাস্ক্রিপ্ট উইডগেট বানালাম। শুধু যেকোন পাতায় নিচের কোডটুকু পেস্ট করে দিন। ব্যস, আপনার সাইটে বাংলা তারিখ দেখুন।

<script type="text/javascript" src="http://tareq.wedevs.com/bangla_date_widget.php">
</script>

উদাহরণঃ

punBB 1.3.2 extension: Bangla Date (বঙ্গাব্দ)

বাংলা আমাদের মাতৃভাষা। এই ভাষার জন্যে আমরা যুদ্ধ করেছি। কিন্তু বাঙালী হলেও আমরা অধিকাংশ লোকই জানিনা আজকে বাংলা কত তারিখ। তাই আজকে জনপ্রিয় ফোরাম ইঞ্জিন পানবিবি’র জন্যে একটা এক্সটেনশন বানালাম। এই এক্সটেনশন আপাতত ব্যবহার করা হচ্ছে একটি অত্যন্ত জনপ্রিয় বাংলা ফোরাম প্রজন্মতে। ডিফল্টভাবে এটি ফোরামের Description এর সোজা ডানদিকে প্রদর্শিত হয়। নিচের স্ক্রিনশট দেখুন

bangla-date1

এটি প্রতিদিনের বাংলা তারিখ ফোরামের header এ দেখায়। সামনে পহেলা বৈশাখ আসছে, সে উপলক্ষ্যে এটি রিলিজ দেয়া হল। আসলে এই এক্সটেনশনের আইডিয়াটি ছিল রাজু ভাইয়ের। তিনি আমাকে বলাতে আমি এই এক্সটেনশনটি বানিয়েছি। ধন্যবাদ রাজু ভাইকে।

আপডেট(২৯ এপ্রিল): আজ এর নতুন ভার্সন ১.২ রিলিজ দিলাম। আগের ভার্সনে কিছু বাগ ছিল। যেমনঃ ঐটার সাল নিয়ে একটু ঝামেলা হচ্ছিল। ঠিক মত আপডেট হচ্ছিল না। তাই এর নতুন ভার্সনে এটা ঠিক করে দেয়া হয়েছে।

আরেকটা নতুন ফিচার যুক্ত করা হয়েছে। যেহেতু বাংলা তারিখ গণনা করা হয় সূর্যোদয় থেকে, তাই নতুন ভার্সনে সকাল ৬ টা থেকে তারিখ পরিবর্তিত হবে। অর্থাৎ রাত ১২ টার পরিবর্তে সকাল ৬ টা থেকে তারিখ পরিবর্তিত হবে।


Download Bangla Date (v 1.2) (141)

punBB 1.3 extension: Textarea resizer

Today i have developed a simple punbb forum extension for our developer forum. It includes a feature that adds a textarea resizer feature to the message writing area such as writing a quick post, writing a topic, PM or email. It uses jQuery.
resize

Download textarea resizer (277)

Activate cURL in XAMPP

cURL is a command line tool for transferring files with url syntax. cURL has a library for php.
Working with scripts that needs cURL, we must have cURL support.
In xampp, cURL support is not enabled built-in. Within a second we can activate cURL library.
You just need to follow the simple steps:

1. Go to the xampp directory of your server
2. Open bin directory under Apache.
3. Open php.ini file with notepad
4. Remove the semicolon (;) from front the text “extension=php_curl.dll
5. Restart your apache server
You are done

Tags: , , ,

Is javascript enabled?

Sometimes we need to check that if javascript is enabled. To do this, we will add some codes. It will show, if only javascript is disabled.

<NOSCRIPT>
<H3>Your JavaScript is disabled</H3>
<strong>For Internet Explorer</strong><br />
Go to "View -> Internet Options -> Security tab<br />
Select "Custom" and click on the "Settings..." button<br />
To enable: make sure "Enable" is selected under "Active scripting"<br />
To disable: make sure "Disable" is selected under "Active scripting"<br /><br />

<strong>For FireFox</strong><br />
Go to "Tools" -> "Options"<br />
Go to "Content" tab and "Enable JavaScript"<br /><br />

<strong>For Opera</strong><br />
Go to "Tools" -> "Preferences"<br />
Go to "Advanced" tab -> "Content" and "Enable JavaScript"<br /><br />
</div>
</NOSCRIPT>

Everything under <noscript></noscript> will be escaped, if javascript is enabled

Tags: ,

Some useful web developement firefox extensions

Developing any site, firefox extensions has been served a lot. Here is some useful firefox extensions that will reduce your work a lot

FireBug 1.3 : Edit, debug, and monitor CSS, HTML, and JavaScript live. (download)

Web Developer’s Toolbar: Adds a menu and a toolbar with various developer tools. (download)

View Formatted Source: Displays formatted source and CSS info for each element. (download)

YSlow: Analyzes pages and tells why they’re slow. REQUIRES FIREBUG. (download)

Dust-Me Selectors 2.11: Dust-Me Selectors finds unused CSS selectors in your site. (download)

UrlParams: Displays the GET and POST parameters of a web page. (download)

Link Checker: Checks all links on a webpage and reports broken ones. (download)