چه باید بدانیم
- گزینه های کلاس PHP: PHPmailer، SwiftMailer، Zend_Mail، XpertMailer، PEAR Mail.
- PEAR Mail: به نام سرور پست الکترونیکی > توجه کنید بررسی کنید که PEAR Mail نصب شده باشد.
این مقاله نحوه استفاده از احراز هویت SMTP برای ارسال ایمیل با تابع PHP mail() در PEAR Mail را توضیح می دهد.
ارسال ایمیل با تابع ایمیل PHP
هنگامی که از تابع PHP () mail استفاده می کنید، در نهایت ایمیل را مستقیماً از وب سرور خود به جای سرور ایمیل خود ارسال می کنید. اگر یک سرور ایمیل از طریق میزبان وب خود یا حتی یک سرور ایمیل با میزبان متفاوتی دارید، معمولاً بهتر است به جای آن ایمیل را از طریق آن ارسال کنید.
مشکل این است که تابع mail() PHP هیچ روش داخلی برای ارسال نامه از طریق SMTP ارائه نمی دهد. اگر می خواهید آن عملکرد را باز کنید، باید یک کلاس PHP اضافی نصب کنید.
در اینجا چند گزینه کارآمد وجود دارد:
- PHPmailer
- SwiftMailer
- Zend_Mail
- XpertMailer
- PEAR Mail
ما به شما نحوه استفاده از PEAR Mail را نشان خواهیم داد، اما می توانید از هر کلاسی که از SMTP پشتیبانی می کند استفاده کنید.
اگر میزبان وب شما قبلاً یک یا چند کلاس از این کلاس ها را نصب کرده است، احتمالاً آموزش های مربوط به موقعیت شما را دارد. اگر چنین است، ادامه دهید و از کلاسی که به آن دسترسی دارید استفاده کنید.
فقط اگر از PHP برای ایجاد فرم های ایمیل سفارشی خود استفاده می کنید از این روش استفاده کنید. اگر از یک سیستم مدیریت محتوا (CMS) مانند وردپرس استفاده میکنید، به جای تلاش برای ایجاد خود، به دنبال یک افزونه یا عملکرد داخلی برای ارسال نامه از طریق SMTP باشید.
نحوه استفاده از PEAR برای ارسال نامه از طریق SMTP
- مطمئن شوید که دامنه شما در سوابق Mail Exchange (MX) میزبان سرور ایمیل شما قرار دارد و نام سرور ایمیل خود را یادداشت کنید. برای مثال، ممکن است mail.yourdomain.net یا smtp.yourdomain.net باشد.
- بررسی کنید که آیا PEAR Mail قبلاً روی سرور ایمیل شما نصب شده است یا خیر.
- اگر PEAR Mail نصب نشده است، با میزبان ایمیل وب خود برای دستورالعمل های خاص برای نصب آن مشورت کنید.
- هنگامی که PEAR Mail نصب شد، یکی از فایلهای PHP نمونه را در بخشهای زیر تغییر دهید تا متناسب با نیاز شما باشد.
نمونه اسکریپت PHP Mail PEAR برای نامه SMTP
در صورت تمایل می توانید اسکریپت خود را از ابتدا ایجاد کنید یا مثال زیر را به دلخواه تغییر دهید. مطمئن شوید که نام سرور ایمیل وب خود را در متغیر میزبان وارد کرده اید و از اطلاعات ورود به سیستم برای میزبان ایمیل وب خود در قسمت های نام کاربری و رمز عبور استفاده کنید.
require_once "Mail.php";
$from="نام فرستنده ";
$to="نام گیرنده ";
$subject=" خط موضوع در اینجا: ";
$body="هر پیامی که می خواهید ";
$host="yourmailhost.com";
$username="نام کاربری یا ایمیل شما"; $password="گذرواژه شما";
$headers=آرایه ('From'=> $from, 'To'=> $to, 'Subject'=> $subject);
$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> true, 'username'=> $username, 'password'=> $password));
$mail=$smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("
". $mail->getMessage()."
);
} else {echo("
پیام با موفقیت ارسال شد!
);}
نمونه اسکریپت PEAR Mail PHP برای احراز هویت SMTP و رمزگذاری SSL
اگر می خواهید از احراز هویت SMTP و رمزگذاری SSL استفاده کنید، باید چند تغییر در مثال قبلی ایجاد کنید. شما باید متغیر میزبان را به سرور ایمیل SSL خود نشان دهید و همچنین یک شماره پورت مانند 25، 465، 587، 2525 یا 8025 را مشخص کنید. اگر نمی توانید بفهمید کدام پورت را انتخاب کنید، برای اطلاعات بیشتر با میزبان ایمیل خود تماس بگیرید. استفاده کنید.
require_once "Mail.php";
$from="نام فرستنده ";
$to="نام گیرنده ";
$subject=" خط موضوع در اینجا: ";
$body=" هر پیامی که می خواهید ";
$host="ssl://yourmailhost.com";
$port="587"; $username="نام کاربری یا ایمیل شما";
$password="گذرواژه شما";
$headers=آرایه ('From'=> $from, ' To'=> $to, 'Subject'=> $subject);
$smtp=Mail::factory('smtp', آرایه ('host'=> $host, 'port'=> $port, 'auth'=> true, 'username'=> $username, 'password'=> $password));
$mail=$smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("
". $mail->getMessage()."
);
} else {echo("
پیام با موفقیت ارسال شد!
);}