یکی از دوستان مطلبی در مورد ارسال ایمیل در دروپال ترجمه کرده بود، که گفتنش در این مکان رو خالی از لطف نیست.
برای ایمیل کردن در دروپال، چند تابع وجود داره، که یکی از اونا drupal_mail هست، که مثالی هم که در ادامه توضیح داده میشه، روی دروپال 6 هست.
اول بخش ارسال ایمیل رو می بینیم :


// tanzime girande va ferestande
$to = "recepient@host.com"
// barAye girandehAye bishtar az comma estefAde mikonim:
// $to = "recip@host.com, anotherrecip@host. com, again@agin.com";
  
$email_from = "email@host.com";

$params['subject'] = "title";
$params['message'] = "this is body of email...";
 
 
$sent = drupal_mail('build_message', 'key', $to, language_default(), $params, $email_from, TRUE);
 
if(!$sent){
//agar tAbe'e mail kAr nakard, az injA mitavAn motevajeh shod
//amA dar bazi mavAred nemitavAn tashkhis dAd
}  

ورودی های تابع drupal_mail عبارتند از :

$module, $key, $to, $language, $params = array(), $from = NULL, $send = TRUE

  • module : نام ماژولیست که بدنه ایمیل در آن ساخته می شود، نام آن باید به صورت modulename_mail باشد.
  • key : این کلید برای شناسایی ایمیل می باشد، در تابع ساختِ بدنه از آن برای انتخاب کردنِ متنِ ایمیل استفاده می کنیم.
  • to : ایمیلِ فرستنده ، بهتره که از خودِ سرور باشه، اگه نباشه، امکان داره که بره تو اسپم ها!!!
  • language : زبانی که برای متن ایمیل از آن استفاده می شود، برای استفاده از زبان پیشفرض میتوان language_default() را به کار برد.
  • params : آرایه ای است برای ارسال پارامترهای اضافی به تابع سازنده ایمیل
  • from : ایمیل (های) گیرنده، اگر تعداد گیرنده ها بیشتر از یک بود، برای جداکردن ایمیل ها از کاما استفاده می کنیم.
  • send : اگر این متغیر را true بگذاریم، تابع drupal_mail، تابع drupal_mail_system()->mail() را برای ارسال ایمیل فراخوانی میکند و نتیجه را در $message['result'] ذخیره می کند.به طور کلی در بیشتر موارد آن را true قرار می دهیم

در زیر تابع سازنده بدنه ایمیل را نیز مشاهده می کنیم :


function build_message_mail($key, &$message, $params) {
    $language = $message['language'];
    switch($key) {
        //switching on $key lets you create variations of the email based on the $key parameter
        case 'key':
        $message['subject'] = $params['subject']
        //the email body is here, inside the $message array
        $message['body'][] = $params['message'];
        break;
    }
}