دروپال: ارسال ایمیل

برای ارسال ایمیل در دروپال نکات زیر را در نظر داشته باشید:

گام اول: پیاده سازی hook_mail

وظیفه این تابع در ماژول شما گرفتن چند پارامتر، ساختن عنوان و متن ایمیل و برگرداندن آرایه message است. ساختار کلی آن را در نظر بگیرید:

/**
 * Implement hook_mail().
 * @param type $key
 * @param type $message
 * @param type $params
 */
function invite_mail($key, &$message, $params) {
  $options = array(
    'langcode' => $message['language']->language,
  );

  $account = $params['account'];
  $invite_mail = $params['invite_mail'];

  switch ($key) {
    // Send a message to invite.
    case 'invitation':
      $message['subject'] = t('@invitor invited you to @site_name', array(
        '@invitor' => format_username($account),
        '@site_name' => variable_get('site_name'),
        ), $options);

      $message['body'] = theme('invite_invitation', array(
        'account' => $account,
        'invite_mail' => $invite_mail,
      ));
      break;
  }
}

فرض کنید اسم ماژول invite است. این تابع در صورتی که بخواهید ایمیل با کلید invitation را ارسال کنید، بدنه و عنوان را به صورتی که مشاهده می‌کنید ساخته و برمی‌گرداند.

نکته: مقدار body در این مثال خروجی یک theme است. که می‌تواند اینچنین نباشد. به عنوان مثال:

$message['body'] = t('Join me');

نکته: از آنجا که ممکن است هر ماژول ایمیل‌های متفاوتی ارسال کند، از کلید key برای متفاوت کردن رفتار این تابع استفاده می‌کنیم.

گام دوم: ارسال ایمیل

// Build the mail and send automatically.
$message = drupal_mail('invite', 'invitation', $invite_mail->mail, LANGUAGE_NONE, array(
  'account' => $account,
  'invite_mail' => $invite_mail,
  ), NULL, TRUE);

خط فوق برای تولید و ارسال ایمیل با استفاده از hook_mail پیاده سازی شده در این ماژول (invite_mail) استفاده می‌شود.

افزودن نظر جدید