ارسال ایمیل از طریق برنامه های سمت سرور و از جمله
[برای نمایش لینک باید عضو شوید. ]، یکی از رایج ترین مباحث کاربردی در نوع خود است که دیر یا زود برنامه نویس زبان php یا لااقل علاقمند استفاده از آن را درگیر خود می کند، اگرچه php به طور پیش فرض توابعی برای ارسال ایمیل در مفسر خود گنجانده است، اما گستره استفاده از این امکان و نیازهای کاربران به حدی است که نمی توان تنها بر آن متکی بود، از طرفی بحث ارسال ایمیل با توجه به محدودیت ها و قابلیت های سرورهای مختلف، گاهی پتانسیل تبدیل شدن به یک مشکل به ظاهر پیچیده را دارد و این چیزی است که بعضا فکر و ذهن برخی از کاربران را مشغول خود می کند، به همین خاطر در این آموزش قصد داریم در حد امکان بپردازیم به نحوه ارسال ایمیل با [برای نمایش لینک باید عضو شوید. ]و کلاس phpmailer، با این امید که مفید واقع شود.[برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ]


ارسال ایمیل در php با تابع mail

[برای نمایش لینک باید عضو شوید. ]


برای ارسال ایمیل در
[برای نمایش لینک باید عضو شوید. ]روش های مختلفی وجود دارد، ساده ترین راه، ارسال ایمیل با استفاده از تابع درونی و از پیش تعریف شده ()mail و SMTP بدون بررسی نام کاربری و رمز عبور (authentication) است، معمولا، کافی است این تابع را با چند آرگومان فراخوانی کنید تا ایمیل شما ارسال شود.
[برای نمایش لینک باید عضو شوید. ]
[برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ]




توضیح:[برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ]

- تابع mail به صورت از پیش تعریف شده در
[برای نمایش لینک باید عضو شوید. ]وجود دارد و تنها کافی است آن را با تکمیل پارامترها، فراخوانی کنیم.
- کارکرد صحیح این تابع، تا حدود زیادی بستگی به تنظیم درست موارد مورد نیاز آن در فایل php.ini دارد (از جمله smtp_port ،SMTP ،sendmail_from در سرورهای ویندوز و sendmail_path در سرورهای لینوکس)، در سرورهای اشتراکی، معمولا دسترسی به فایل اصلی
[برای نمایش لینک باید عضو شوید. ].ini امکان پذیر نیست، بنابراین اگر نتوانید با تابع mail ایمیل ارسال کنید، به احتمال زیاد تنظیمات این فایل به درستی انجام نشده است یا سرور هاست شما، قابلیت ارسال ایمیل را محدود کرده است که باید با پشتیبانی خود در این مورد تماس بگیرید.[برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ]
[برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ]
[برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ]



[برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ]


ارسال ایمیل با استفاده از کلاس phpmailer

[برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ]


کد PHP:






<?php
require_once('class.phpmailer.php');
$mail = new PHPMailer(true);
$mail->IsSMTP();
try {    
  
$mail->Host       "mail.example.com"// آدرس SMTP سرور شما
  
$mail->SMTPAuth   true;                  // استفاده از SMTP authentication
  
$mail->Username   "yourname@example.com"// نام کاربری SMTP
  
$mail->Password   "************";        // کلمه عبور SMTP
  
$mail->AddReplyTo('yourname@example.com''Your Name'); // افزودن پاسخ به ارسال کننده
  
$mail->AddAddress('username@example.com''User Name'); // تنظیم آدرس گیرنده ایمیل
  
$mail->SetFrom('yourname@example.com''Your Name'); // تنظیم قسمت ارسال کننده ایمیل
  
$mail->Subject 'PHPMailer تست'// موضوع ایمیل
  
$mail->AltBody 'برنامه شما از این ایمیل پشتیبانی نمی کند، برای   دیدن آن، لطفا از برنامه دیگری استفاده نمائید'// متنی برای کاربرانی که   نمی توانند ایمیل را به درستی مشاهده کنند
  
$mail->CharSet 'UTF-8'// یونیکد برای زبان فارسی
  
$mail->ContentType 'text/html'// استفاده از html  
  
$mail->MsgHTML('<html>
<body>
این یک <font color="#CC0000">تست</font> است!
</body>
</html>'
); // متن پیام به صورت html
  //$mail->AddAttachment('images/phpmailer.gif'); // ضمیمه کردن فایل
  
$mail->Send(); // ارسال
  
echo "پیام با موفقیت ارسال شد\n";

catch (
phpmailerException $e) {
    echo 
$e->errorMessage(); // پیام خطا از phpmailer

catch (
Exception $e) {
    echo 
$e->getMessage(); // سایر خطاها
}
?>



اگرچه کاربرد تابع mail در php بسیار آسان و ساده است، اما این تابع تنها موارد اولیه را پوشش می دهد، به فرض امکان استفاده از SMTP به صورت authentication یا بررسی نام کاربری و کلمه عبور وجود ندارد، یا نمی توان سرور ارسال ایمیل را تغییر داد و محدودیت های دیگری از این دست، لذا برنامه نویسان php بسته ها و کلاس های دیگری بدین منظور نوشته اند که یکی از معروف ترین آنها کلاس phpmailer است، علاوه بر کلاس phpmailer بسته ایمیل PEAR نیز برای php وجود دارد که البته به دلیل قدرت و انعطاف پذیری کلاس phpmailer کم تر مورد استفاده قرار می گیرد.
برای شروع آموزش این قسمت ابتدا کلاس مذکور را از لینک زیر دریافت کنید:


[برای نمایش لینک باید عضو شوید. ][برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ]


استفاده از کلاس بالا بسیار ساده و آسان است، کافی است مطابق الگوی زیر
موارد مورد نظر را با توجه به سرور خود تنظیم کرده و فایل را اجرا نمائید.

[برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ] [برای نمایش لینک باید عضو شوید. ]






[برای نمایش لینک باید عضو شوید. ]