در این جلسه قصد دارم قبل از اینکه به ادامه آموزش بپردازم. ابتدا ذهن شما را برای درک مفهوم ایمیل و چگونگی ارسال ایمیل از لوکال هاست (توسط wamp) آماده خواهم کرد. در ادامه با من همراه باشید.
Mail Server به عنوان یک نرم افزار شناخته می شود که این امکان را برای یک وب سایت فراهم می کند تا بتواند ایمیل هایی را از طریق سرور به سایر اشخاص یا سایت ها ارسال کند.
SMTP مخفف عبارت Simple Mail Transfer Protocol بوده و به عنوان یکی از پروتکل های TCP/IP جهت ارسال یا انتقال ساده ایمیل، معرفی می شود. در واقع SMTP مانند یک دستیار عمل کرده و ایمیل را از فرستنده دریافت و به گیرنده ارسال می کند.
این پروتکل به دلیل محدودیت هایی که در نگهداری نامه ها دارد، معمولا همراه با پروتکل های POP3 (که مخفف عبارت Post Office Protocol 3 است) یا IMAP (مخفف عبارت Internet Message Access Protocol) استفاده می شود تا امکان ذخیره کردن نامه ها را به کاربران داده و شرایط دانلود این اطلاعات را برای آنها فراهم کند.
توجه: به صورت خلاصه می توان گفت که SMTP برای ارسال و POP3 و IMAP برای دریافت نامه ها استفاده می شود.
SMTP فقط به نام کاربری و دامنه احتیاج دارد تا مستقیما پیام ها را سمت گیرنده مسیریابی کند و به صورت پیشفرض روی پورت ۲۵ هر سروری فعال است. البته مدیران سرور می توانند با درنظر گرفتن مباحث امنیتی پورت آن را تغییر دهند.
برای ارسال ایمیل در PHP از تابع mail() به صورت زیر استفاده می شود:
mail(to,subject,message,headers,parameters);
در جدول زیر در مورد پارامترای این تابع توضیح داده شده است:
پارامتر | توضیح |
to | نوشتن این پارمتر اجباری است و ایمیل گیرنده و یا گیرندگان را مشخص می کند. |
subject | نوشتن این پارمتر اجباری می باشد و از نوع متنی بوده و تنها می تواند یک خط باشد و در حقیقت موضوع عنوان ایمیل را مشخص می نماید. |
message | نوشتن این پارامتر اجباری است و از نوع متن بوده و نباید بیش از 70 کاراکتر باشد . متن نوشته شده داخل ایمیل را مشخص می کند و هر خط باید با کاراکتر (\n) از خط قبل و بعد جدا شود. |
headers | نوشتن این پارامتر اختیاری است و Cc و یا Bcc را مشخص می کند. برای جدا کردن هر خط از خط قبلی باید از کاراکتر (\r\n) استفاده کرد. |
parameters | نوشتن این پارامتر اختیاری است. برای اضافه کردن پارامترها به برنامه ارسال ایمیل استفاده می شود. |
نکته: از طریق نرم افزار WampServer امکان ارسال ایمیل وجود ندارد و باید تغییراتی در این نرم افزار انجام دهیم و ضمنا از یک فایل جانبی به نام SendMail نیز باید بهره بگیریم.
همانطور که در بالا به آن اشاره کردم، ایمیل از طریق یک سرور SMTP ارسال می شود. دو سرور معروف Google و Yahoo می باشند. برای ارسال ایمیل ابتدا فایل زیر را دانلود کنید.
سپس آن را از حالت فشرده خارج و به آدرس C:\wamp منتقل نمایید. به تصویر زیر نگاه کنید.
حالا پوشه sendmail را باز کنید و فایل sendmail.ini که درون آن قرار گرفته را با استفاده از notepad باز و تمامی محتویات آن را پاک کنید و به جای آن کدهای زیر را قرار دهید.
[sendmail] smtp_server=smtp.gmail.com smtp_port=465 smtp_ssl=ssl default_domain=localhost error_logfile=error.log debug_logfile=debug.log auth_username= آدرس ایمیل خودتان را وارد نمایید auth_password=رمز عبور ایمیل خودتان را وارد نمایید pop3_server= pop3_username= pop3_password= force_sender=آدرس ایمیل خودتان را وارد نمایید force_recipient= hostname=localhost
دقت کنید که به جای "آدرس ایمیل خودتان را وارد نمایید" آدرس ایمیل معتبر خود را وارد کنید (ترجیحا این آدرس جی میل باشد). و به جای "رمز عبور ایمیل خودتان را وارد نمایید" رمز جی میل خودتان را جایگزین کنید.
بعد از انجام مرحله بالا، طبق نوشته ها و تصاویر زیر جلو بروید.
وارد فایل wamp می شویم.
سپس وارد فولدر bin می شویم.
وارد فولدر apache می شویم.
وارد فولدر apache2.4.9 می شویم. دقت کنید، ممکن است نام این فولدر برای شما با توجه به نسخه wamp نام دیگری باشد.
وارد فولدر bin موجود می شویم.
فایل php.ini را با استفاده از notepade باز کنید.
بعد از اینکه php.ini را با استفاده از notepad باز کردیم. کلید های ctrl و f را با هم فشار دهید تا کادر find برای شما باز شود. در کادر باز شده عبارت mail function را بنویسید و سپس بر روی find next کلیک کنید و موارد مشخص شده در تصویر زیر را با مقادیری که در تصویر نشان داده شده است، مقدار دهی کنید.
بعد از انجام تنظیمات بالا ، تغییرات را save کنید و فایل php.ini را ببندید.
در ادامه طبق تصاویر و نوشته های زیر جلو بروید.
وارد فایل wamp می شویم.
وارد فولدر bin می شویم.
فوادر php را انتخاب کنید.
فولدر php 5.5.12 را انتخاب کنید. ممکن است نام فولدر با توجه به نسخه مورد استفاده شما، نام دیگر باشد؛ آن را انتخاب کنید.
فایل php.ini را با استفاده از notepad باز کنید.
بعد از اینکه php.ini را با استفاده از notepad باز کردیم. کلید های ctrl و f را با هم فشار دهید تا کادر find برای شما باز شود. در کادر باز شده عبارت mail function را بنویسید و سپس بر روی find next کلیک کنید. و موارد مشخص شده در تصویر زیر را با مقادیری که در تصویر نشان داده شده است، مقدار دهی کنید.
خب بعد از انجام تمامی اقدامات بالا، نوبت به آن رسیده است که یکبار wamp را restart کنیم برای انجام اینکار باید به آیکن wamp در گوشه پایین سمت چپ دسکتاپ بروید و مانند تصویر زیر بر روی Restart All Services فشار دهید. دقت کنید که بعد از انجام این عمل باید رنگ آیکن از قرمز به نارنجی و سپس سبز رنگ تغییر کند و رنگ نهایی آیکن wamp، باید سبز شود.
بعد از انجام عمل بالا تغییرات زیر را نیز اعمال نمایید. به تصویر زیر نگاه کنید.
من نام این عملیات را ریست کردن ssl_module گذاشته ام . دقت کنید که باید ssl_module حتما تیک دار شود. از طرفی وقتی تیک ssl_module را می زنید برنامه wamp ریست می شود و رنگ آیکن wamp ابتدا به نارنجی و بعد سبز رنگ می شود. (تا آن زمان که آیکن wamp سبز رنگ نشده، هیچ اقدامی انجام ندهید.) .
بعد از انجام موارد بالا، باید در ادامه طبق تصویر زیر جلو برویم.
نام این عملیات را ریست کردن php_openssl و php_sockets قرار داده ام. که در طی آن شما باید دو قسمت php_openssl و php_sockets تیک دار نمایید (البته به نوبت). دقت کنید که وقتی تیک php_openssl و php_sockets را می زنید، برنامه wamp ریست می شود و رنگ آیکن wamp ابتدا به نارنجی و بعد سبز رنگ می شود. (تا آن زمان که آیکن wamp سبز رنگ نشده هیچ اقدامی انجام ندهید.)
تا اینجا تمام کارهایی که انجام دادیم مقدمات را برای ارسال ایمیل از طریق wamp را میسر می کند.
دقت کنید برای اینکه ارسال ایمیل میسر شود در آخرین اقدام شما باید به آدرس C:\wamp\sendmail بروید و بر روی sendmail.exe کلیک راست کنید و گزینه properties را انتخاب نمایید . سپس به سربرگ compatibility بروید و در قسمت compatibility mode ، تیک گزینه run this program in compatibility mode for را بزنید و از میان گزینه های موجود در لیست کشویی، گزینه Windows Xp Service Pack 3 را انتخاب نمایید. برای درک بهتر مفاهیم بالا به تصاویر زیر نگاه کنید.
بعد از انجام کار های بالا بر روی ok فشار دهید.
حالا تمام کارهای لازم برای فرستادن ایمیل از طریق لوکال هاست (wamp) به اتمام رسیده است. بنابراین برای تست ارسال ایمیل یک برنامه به زبان php با همدیگر می نویسیم و یک ایمیل از طریق لوکال هاست ارسال می کنیم.
برای انجام اینکار ابتدا باید در آدرس C:\wamp\www یک فایل با نام testmail.php بسازیم (یادتان باشد که بعد از اعمال تغییرات بالا حتما wamp را روشن کنید). به تصویر زیر نگاه کنید.
بعد از انجام اینکار برنامه testmail.php را با استفاده از Notepad++ باز کنید و کدهای زیر را در آن قرار دهید.
<?php $to = 'jahangirpachkam@gmail.com'; $subject = 'Testing sendmail.exe'; $message = 'hi,jahangir pachkam '; $headers = 'From: jahangirpachkam@gmail.com' . "\r\n" . 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=utf-8'; if(mail($to, $subject, $message, $headers)) echo "Email sent"; else echo "Email sending failed"; ?>
سپس آدرس http://localhost/testmail.php را در مرورگر خودتان وارد نمایید به محض زدن این آدرس تصویر زیر نمایان می شود که نشان دهنده ارسال ایمیل به مقصدی که تعیین کرده ام (jahangirpachkam@gmail.com) می باشد.
خب حالا وقت آن رسیده است که به ایمیل خودم سر زنم و ببینم آیا پیامی فرستاده شده است یا نه . شما می توانید پیام فرستاده شده برای ایمیل من را که از wamp فرستاده شده در تصویر زیر نگاه کنید.
خب دوستان عزیزم به پایان این قسمت از آموزش ساخت فروشگاه اینترنتی با php رسیدیم. دقت کنید که ما برای تایید ایمیل دو بخش را باید مد نظر قرار دهیم ؛ یک بخش ارسال ایمیل به مشتری می باشد (که ما آن را این قسمت با همدیگر یاد گرفتیم) و یک بخش مربوط به آن است که کاربر بتواند بر روی لینکی که ما برای او ارسال می کنیم، فشار دهد و بتواند به آدرس اینترنتی فروشگاه ما وارد شود.
این مبحث (قرار دادن لوکال هاست در فضایی اینترنت) بسیار مبحث شیرین و جالبی هست که در قسمت آینده به آن خواهیم پرداخت. سعی کنید تمامی نکاتی را که در این جلسه خدمت شما عرض کردم به خوبی یاد بگیرید و اگر مشکل و یا نقطه نظری داشتید در قسمت نظردهی عنوان نمایید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.