Arvan Docs

مستندات فنی

دسترسی به تمامی مستندات محصولات ابر آروان

دسته‌بندی‌های سایت مشاهده دسته‌بندی‌ها بستن دسته‌بندی‌ها

مشاهده همه دسته‌ها

ارسال ایمیل با PHP با استفاده از حساب SMTP بیرونی برای LAPP

Time To Read < ۱ دقیقه
Date ۳۰ فروردین ۱۴۰۰

در این مقاله:

ماژول‌های PEAR

برای اطمینان از ارسال و تحویل درست ایمیل‌ها، اسکریپت PHP یا برنامه‌ی PHP خود را به گونه‌ای پیکربندی کنید که از حساب SMTP بیرونی استفاده کند. مثالی که در ادامه آورده شده نشان‌دهنده‌ی شیوه‌ی انجام این کار با استفاده از یک حساب Gmail است:

  • ماژول‌های Mail و Net_SMTP PAER را نصب کنید:
sudo /opt/bitnami/php/bin/pear install pear/Net_SMTP pear/Mail-1.4.1

توجه کنید که اگر پیش‌تر این پکیج‌ها را در سیستم‌ خود نصب کرده‌ باشید، پس از اجرای دستور بالا پیام زیر را مشاهده خواهید کرد:

Ignoring installed package pear/Net_SMTP
Ignoring installed package pear/Mail
Nothing to install
  • از اسکریپت زیر برای ارسال ایمیل استفاده کنید. این اسکریپت را در دایرکتوری pear خود قرار دهید و آن را با PHP CLI اجرا کنید.
<?php
require_once "Mail.php";

$from = "myaccount@gmail.com";
$to = 'test@mytest.com';

$host = "ssl://smtp.gmail.com";
$port = "465";
$username = 'myaccount@gmail.com';
$password = 'mypassword';

$subject = "test";
$body = "test";

$headers = array ('From' => $from, 'To' => $to,'Subject' => $subject);
$smtp = Mail::factory('smtp',
  array ('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("Message successfully sent!\n");
}
?>

Sendmail

برای استفاده از sendmail به جای سرور SMTP  بیرونی، ابتدا بررسی کنید که sendmail نصب شده باشد. برای این کار دستور زیر را وارد کنید:

sudo /usr/sbin/sendmail -q

اگر sendmail نصب نیست، با دستور زیر آن را نصب کنید:

  • Debian:
sudo apt-get install sendmail
  • CentOS:
sudo yum install sendmail

PHP را برای استفاده از sendmail پیکربندی کنید. برای این کار خط زیر را در فایل پیکربندی PHP در آدرس /opt/bitnami/php/etc/php.ini از حالت comment خارج کنید:

sendmail_path = "env -i /usr/sbin/sendmail -t -i"