دانلود مقاله تابع Mail در PHP

Word 51 KB 18816 9
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۱۲,۰۰۰ تومان
قیمت: ۷,۶۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • در این مقاله ما خواهیم دید که چگونه زبان PHP را برای ارسال ایمیل تنظیم کنیم و همچنین نحوه فرستادن ایمیلهای HTML و ایمیلهای همراه با فایل ضمیمه (Attachment) را بررسی کرد .


    قبل از اینکه به کمک PHP بتوانیم ایمیل بفرستیم باید PHP را برای این کار تنظیم کنیم .

    دقیقا مانند اینکه بخواهیم برنامه ارسال و درایمیل ( مانند Outlook ) را تنظیم کنیم .


    برای این کار هم باید سراغ فایل php.ini رفته و آن را با editor دلخواه خودتان باز کنید .

    اگر می خواهید کدهای خودتان را بر روی سروری غیر از سیستم خودتان اجرا گنید از این مزحله صرف نطر کنید و فرض را بر این بگزارید که سرور شما برای انجام این کار تنظیم شده است و در نتیجه به مرحله بعد بروید .


    در فایل php.ini در قسمتی که با ( mail function ) عنوان گزاری شده است گزینه ای دارید به نام SMTP که باید مقدار آن را SMTP ایمیلتان بگذارید مثلا mail.softhome.net
    البته در فایل php.ini تنظیمات برای سرورهای ویندوز و لینوکس را جدا در نظر گرفته و شما باید بر اساس سیستمی که استفاده میکنید چیزی شبیه زیر را داشته باشید :
    برای سیستمهای ویندوز :
    [mail function ]
    Setup for windows system ;
    SMTP = smtp.my.isp.net
    Sendmail_from = me@myserver.com
    و برای سیستمهای لینوکس :

    [mail function ]
    Setup for Linux system;
    Sendmail_path = /usr/sbin/sendmail-t
    Sendmail_from = me@myserver.com
    وقتی تنظیمات را انجام دادید وب سرور خود را restart کنید و اکنون همه چیز برای ارسال ایمیل آماده است !


    ارسال ایمیل ساده (Plain Email ) :
    حقیقتا از روشی که PHP برای ازسال ایمیل در مظر گرفته ساده تر نمی توان تصور کرد !


    در حقیقت شما می توانید ارسال ایمیل را با تنها نوشتن یک خط انجام دهید !

    مانند زیر :
    Mail('recipient @some.net','subject',Your message here.');
    خط بالا یک ایمیل را به آدرس 'recipient@some.net' با موضوع 'subject' و Your message here.' , به عنوان متن نامه ارسال می کند .


    همانطور که مشاهده کردید PHP ارسال ایمیل را بسیار ساده کرده است .

    ولی چندین راه حل پیشرفته و جود دارد که به ما این امکان را می دهد که ایمیلهای HTML و ایمیلهای همراه با فایل ضمیمه بفرستیم .


    در این مقاله ما خواهیم دید که چگونه زبان PHP را برای ارسال ایمیل تنظیم کنیم و همچنین نحوه فرستادن ایمیلهای HTML و ایمیلهای همراه با فایل ضمیمه (Attachment) را بررسی کرد .

    قبل از اینکه به کمک PHP بتوانیم ایمیل بفرستیم باید PHP را برای این کار تنظیم کنیم .

    برای این کار هم باید سراغ فایل php.ini رفته و آن را با editor دلخواه خودتان باز کنید .

    در فایل php.ini در قسمتی که با ( mail function ) عنوان گزاری شده است گزینه ای دارید به نام SMTP که باید مقدار آن را SMTP ایمیلتان بگذارید مثلا mail.softhome.net البته در فایل php.ini تنظیمات برای سرورهای ویندوز و لینوکس را جدا در نظر گرفته و شما باید بر اساس سیستمی که استفاده میکنید چیزی شبیه زیر را داشته باشید : برای سیستمهای ویندوز : [mail function ] Setup for windows system ; SMTP = smtp.my.isp.net Sendmail_from = me@myserver.com و برای سیستمهای لینوکس : [mail function ] Setup for Linux system; Sendmail_path = /usr/sbin/sendmail-t Sendmail_from = me@myserver.com وقتی تنظیمات را انجام دادید وب سرور خود را restart کنید و اکنون همه چیز برای ارسال ایمیل آماده است !

    ارسال ایمیل ساده (Plain Email ) : حقیقتا از روشی که PHP برای ازسال ایمیل در مظر گرفته ساده تر نمی توان تصور کرد !

    در حقیقت شما می توانید ارسال ایمیل را با تنها نوشتن یک خط انجام دهید !

    مانند زیر : Mail('recipient @some.net','subject',Your message here.'); خط بالا یک ایمیل را به آدرس 'recipient@some.net' با موضوع 'subject' و Your message here.' , به عنوان متن نامه ارسال می کند .

    همانطور که مشاهده کردید PHP ارسال ایمیل را بسیار ساده کرده است .

    قبل از هر چیز این نکته را متذکر شوم که اگر mail system ی که شما در php.ini تعریف کرده اید ایمیل ارسالی را برگشت (reject) دهد { برای مثال اگر در قسمت TO آدرس یک ایمیل درست را ننوشته باشیم } این تابع یک پبغام خطا در مرورگر کاربر نمایش خواهد داد ، دقیقا مانند اتفاقی که در مورد سایر تابعهای PHP می افتد .

    اما هماتطور که می دانید ما می توانیم با نوشتن علامت @ قبل از تابع از نوشتن پیغام خطا در مرورگر کاربر جلوگیری کنیم .

    اگر این نکته را با چیزی که تابع mail برمی گرداند ( true یا false بسته به اینکه ایمیل ارسال شده باشد یا خیر ) ترکیب کنیم کد زیر را خواهیم داشت : If @mail($to,$subject, $message )) { echo('Mail sent successfully .'); } else { echo('Mail sent successfully .'); } به یاد داشته باشید که ارسال ایمیل نمی تواند تضمینی بر دریافت آن در مقصد باشد.

    برای مثال اگر یک ایمیل به آدرس nonexistent.user@hotmail.com بفرستیم و فرض بر این باشد که این آدرس اصلا وجود ندارد ، این آدرس برای تابع mail قابل قبول است و true را برمی گرداند ولی مطمئنا این ایمیل از بین می رود چون کسی صاحب آن نیست ، پس در این مورد کاری از دست PHP بر نمی آید .

    وقتی که می خواهیم یک ایمیل را به چندین آدرس بفرستیم کافیست که در پارامتر اول تمام آدرس ها را پشت سر هم نوشته و آنها را با علامت کاما "،" از هم جدا کنیم .

    برای مثال : mail('recipient 1 @some.net,recipient2@some.net', 'An email to two people ' , 'message goes here , ' ); خب ، تا حالا اصول قرستادن یک ایمیل را بررسی کردیم ، اما بپردازیم به اصل مطلب و mail header ها و اینکه چه کارهایی می توانیم با آنها انجام دهیم !

    ایمیلهای HTML و header ها : اکنون شما می توانید از اسکریپتهای PHP خود ایمیل بفرستید ، چقدر جالب !

    من مطمئنم وقتی یاد بگیرید که چگونه ایمیلهای HTML بفرستید احساس قدرت بیشتری خواهید کرد !

    پس ادامه می دهیم ؛ برای اینکه ایمیلهای HTML را درک کنید ابتدا باید header های یک ایمیل را بشناسید .

    هر ایمیل دریافتی از دو قسمت تشکیل شده است : header ها و متن نامه (message body) .

    در زیر نمونه یک ایمیل ساده که برنامه ایمیل شما دریافت کرده است را می بینیم : Return-path : Delivered-To:you@some.net Received:…several lines like this … From : Sender To: YOU Subject: A Simple Message Date: Mon, 11 Feb 2002 16:08:19 -0500 Organization : Sender's Company X-Mailer : Microsoft Outlook , Build 10.02616 Hi there !

    Is this thing on ?

    تمام خطوط بالای خط سفید header ها هستند .

    در واقع یک ایمیل می تواند بیشتر از اینها هم header داشته باشد ولی برای اختصار در این مثال چند مورد اصلی را ذکر کرده ام .

    همانطور که می بینید هر خط از header های با نام آن header شروع می شود (From To :, Subject :, date :, stc) و در ادامه آنها هم چند مقدار (value) قرار گرفته است .

    بیشتر header ها استاندارد شده هستند و یک مفهوم خاص برای mail program یا mail server ی که مسئول رساندن ایمیل ها به ما هستند ، دارند .

    اما header های غیر استاندارد هم وجود دارند و مشخصه آنها این است که با –X شروع شوند ( مانند : X-Mailer که اغلب برای نشان دادن برنامه ای که برای ارسال ایمیل استفاده شده است به کار می رود ) نکته : اگر مقدار (value) یک header نیاز به بیش از یک خط اضافه باید با یک فاصله از سر خط شروع شوند .

    یک مثال در این زمینه را در قسمت بعد خواهیم دید .

    وقتی که برنامه ایمیل شما به خط سفید (balnk line ) رسید می فهمد که header های نامه تمام شده و از این به بعد محتویات متن نامه است که باید نشان داده شود .

    در مثال ما ،‌ متن نامه همان خط آخر است .

    تابع mail در PHP به شما اجازه می دهد که header های مورد نظر خودتان را به نامه اضافه کنید و PHP آنها را به header هایی که خود به صورت اتوماتیک تولید می کند اضافه می کند .

    برای نمونه در مثال پایین یک header با عنوان X-mailer: به نامه اضافه کرده ایم که PHP 4.x را به عنوان برنامه فرستنده ایمیل معرفی می کند .

    Mail('recipient@some.net','subject',Your message here.', 'X-mailer: PHP 4.x'); پرامتر چهارم که یک پرامتر اختیاری است اغلب برای نشان دادن From ایمیل استفاده می شود ( علاوه بر From ی به صورت پیش فرض در php.ini تعریف کرده ایم ) .

    پس اجازه بدهید که یک header از نوع From به نامه اضافه کنیم تا این کار را برای ما انجام دهد :‌ Mail('recipient@some.net','subject',Your message here.', "From: sender@some.net\nX-mailer: PHP 4.x"); با توجه به اینکه header ها هر کدام در یک خط باید قرار داشته باشند پس ما باید هر دو خط را با \n از هم جدا کنیم ( که این خود نشان دهنده این است که ما باید پارامتر چهارم را درون " " قرار دهیم برای اینکه PHP به کاراکترهای خاص نظیر \n اگردرون ، ، قرار داشته باشند توجه نمی کند ).

    Header های دیگری هم هستند که نام فرستنده و گیرنده نامه را قبل از آدرس ایمیل آنها می نویسد ؛ به این صورت : name .

    مثال : Mail('recipient@some.net','subject',Your message here.', "To: The Receiver \n".

    "From : The sender \n".

    "X-Mailer:PHP 4.x"); توجه داشته باشید که برای اضافه کردن نام به قسمت TO ، نمی توانیم نام را در پارامتر اول جا دهیم و تنها راه ممکن این است که یک header با عنوان TO : به header ها اضافه کنیم .

    Header های CC: و Bcc: هم وجود دارند که مورد استفاده آنها حتما خودتان می دانید : Mail('recipient@some.net, someone@some.net, metoo@some.net', 'Subject', 'Your message here.', "To: The Receiver \n" .

    "From: The sender n" .

    "cc: Interested \n" .

    "Bcc: Me Too \n".

    "X-mailer: PHP 4.x"); فقط توجه داشته باشید که آدرس ایمیل تمام گیرنده ها به ترتیب To و cc و Bcc در پارامتر اول نوشته شده است ، این نکته در جایی ذکر نشده است ولی من با تکیه بر تجربیات شخصی خودم به این نکته پی بردم ام که اگر می خواهید ایمیل به تمام گیرنده ها برسد باید این کار را بکنید (مخصوصا در سرورهای ویندوز که زیادی حساس هستند .) اخطار باگ : دو باگ برای تابع mail در PHP وجود دارد که من اخیرا در PHP نسخه 4،1،0 دیده ام ؛ اول اینکه هدر Cc : باید اینگونه تایپ شود : :cc یا :CC یعنی هر دو حروف بزرگ یا هر دو کوچک ...

    ترکیبی از حروف کوچک و بزرگ قاعد تا باید کار کند ولی اینطور نیست !

    دوم اینکه در سروهای ویندوز هدر :Bcc درست کار نمی کند .

    همانطور که می دانید هنگام ارسال نامه ، هدر :Bcc باید از بین header ها حذف شود ، ولی اینگونه ایمیل می تواند هدر :Bcc را در بین هدرها ببیند !

    خب حتما سوال می کنید که این همه چه ربطی به فرستادن ایمیل های HTML داشت ؟‌ جواب : چند header خاص هستند که باعث می شوند برنامه دریافت کننده ایمیل آن را به عنوان ایمیل HTML بشناسند .

    mail('recipient@some.net','subject', 'Your messagehere.', "To: The Receiver \n" "From : The Sender \n".

    "MIME-Version : 1.0 \n".

    "Content-type: text/html: charset=iso-8859-1");

کلمات کلیدی: Mail در PHP - PHP - تابع Mail

امروزه گستردگي جوامع ، نيازهاو کثرت وابستگي مردم را به يکديگر ،شرايط جديدي را فراهم آورده که گذران امور با روش هاي سنتي را غير ممکن مي سازد. بشر روزگاراني را گذرانده که به حداقل جمعيت بر روي کره زمين، زندگي کرده و تنها نيازش خوراک و پوشاک بوده است.

درفصل چهارم برای بهبود کارایی طراحی وب سایت با نرم افزا joomla تغییرات واصلاحاتی درانواع منوها وتنظیمات شان آموزش داده می شود ،همچنین مدیریت محتواوایجاد انواع محتوا درآن بحث شده است. شما بعدازمطالعه این فصل،مطالب زیررا یاد خواهید گرفت: تغییر قالب ها پیکربند ی administaration انواع منوها مثل help –site-manager و... ایجاد محتوای جدید راه اندازمنو و... این فصل به بررسی روش های ...

چنانچه مي خواهيد براي موسسه خود سايت ايجاد نماييد اولين قدم ثبت يک نام براي سايت مي باشد به اين نام که به صورت انحصاري ثبت مي گردد دامنه يا Domain مي گويند هر نام از دو قسمت تشکيل شده است که با نقطه از يکديگر جدا مي شوند قسمت اول که قسمت اصلي نام بو

: در اين درس مي‌آموزيم که با پورت ?? (SMTP) ارتباط برقرار کنيم و از آن براي ارسال Fake Mail استفاده کنيم. ? پورت ?? چيست؟ پورت ?? براي ارسال E-mail به‌کار مي‌رود. اين پورت از پروتکل SMTP براي اين کار استفاده مي‌کند. نکته مهم آن است که اين پروتکل تو

چکیده این پروژه برنامه ساخت یک وب سایت شخصی برای استاد است . که شامل صفحات ایستا و پویای وب می باشد . برنامه نویسی اسیتای آن توسط نرم افزار Dreamweaver و زبان HTML و برنامه نویسی پویای آن توسط زبان PHP انجام گرفته است . بانک اصلاعاتی مرتبط با آن MYSQL می باشد . امکانات این وب سایت شامل موارد زیر می باشد : 1 ) اطلاعات شخص استاد برای آشنایی بیشتر دانشجویان با سوابق استاد خود . 2 ) ...

هانگ نگيون و ولاديک کرينويچ – قسمتي از علوم وابسته به رياضيات و دانشگاه واحد مکزيک email hunguyen @nmsu .edu has Cruces قسمت علوم کامپيوتر ، دانشگاه تکزاس : email valadik @ cs .vtep.edu EI Paso خلاصه : در خيلي از طراحي موقعيت هاي حقيقي چند

تار جهان گستر (Word Wide Web) دنياي عجيبي است که تکنولوژي هاي مربوط به آن ، اغلب بدون پشتيباني کافي ، عرضه مي شوند و کاربران اين تکنولوژي ها ، همه روزه با واژگان جديدي برخورد مي کنند که باعث سر درگمي آنها مي شوند. براي نمونه مي توان به رشد برنامه ه

پروژه پایان دوره کارشناسی روش تحقیق: با توجه به اینکه موضوع تحقیق کلاهبرداری و بررسی شیوه و شگرد ها و راه های مقابله با آن است در مورد شناخت جرم کلاهبرداری و این که چگونه یک جرم به نام کلاهبرداری محقق می‌شود از روش کتابخانه ای استفاده شده است ولی در مورد بررسی شگردها و شیوه ها چون تاکنون هیچ منبع آموزشی به صورت کامل وجود ندارد بیشتر از روش تحقیقاً میدانی از افسران اداره مبارزه ...

ارائه سرويسهاي جديدي که قبلا نبوده و اساسا توسط مراکز امکان ارائه آنها وجودنداشته و اگر مراکز آن را ارائه مي دادند هزينه زيادي در بر داشته -SET: قابليت ارائه سرويسهاي جديد را دارد زماني که شماره گرفته مي شود اين شماره به صورت پالسهايي دي کد مي شود

برنامه هائئ که درزمينه DATA BASE کار مي کنند به دو قسمت تقسيم مي شوند. يک قسمت لايه بيروني يا USER INTERFACE (برنامه اي است که معمولا با برنامه هاي VISUALاي نوشته مي شود.) قسمت ديگر خود DATABASE است که بوسيله يکي از زبانهاي بانکهاي اطلاعاتي (که برپا

ثبت سفارش
تعداد
عنوان محصول