আমি আমার কাস্টম মডিউল থেকে প্রোগ্রামিয়ালি ইমেল প্রেরণের জন্য দ্রুপালের ইমেল সিস্টেমটি ব্যবহার করতে চাই। এটা কি সম্ভব?
আমি আমার কাস্টম মডিউল থেকে প্রোগ্রামিয়ালি ইমেল প্রেরণের জন্য দ্রুপালের ইমেল সিস্টেমটি ব্যবহার করতে চাই। এটা কি সম্ভব?
উত্তর:
হুক_মেল এবং দ্রুপাল_মেল ব্যবহার করে আপনি একটি ইমেল তৈরি এবং প্রেরণ করতে পারেন।
একটি ইমেল ব্যবহার hook_mail প্রয়োগ করুন:
function MODULENAME_mail ($key, &$message, $params) {
switch ($key) {
case 'mymail':
// Set headers etc
$message['to'] = 'foo@bar.com';
$message['subject'] = t('Hello');
$message['body'][] = t('Hello @username,', array('@username' => $params['username']));
$message['body'][] = t('The main part of the message.');
break;
}
}
একটি মেইল প্রেরণের জন্য drupal_mail ব্যবহার করুন:
drupal_mail($module, $key, $to, $language, $params = array('username' => 'John Potato'), $from = NULL, $send = TRUE)
স্পষ্টতই পরামিতিগুলি প্রতিস্থাপন করুন: $ কীটি 'মাইমেল' এর সমান হওয়া উচিত
কয়েকটি পদক্ষেপে একটি ইমেল প্রেরণ করা হয়:
$message['to']
হার্ড কোড করা হয় foo@bar.com
। এটি ছেড়ে দিন এবং বার্তা প্রাপকের কাছে প্রেরণ করা হবে যা কল করার সময় নির্দিষ্ট করা আছে drupal_mail()
।
আপনি যদি ইমেল প্রেরণের সহজ উপায় চান তবে সিম্পল মেলটি দেখুন ; এটি একটি মডিউল যা আমি ড্রপাল 7+ এর সাথে ইমেলগুলি প্রেরণে আরও বেশি সহজ করার জন্য কাজ করছি এবং এটির জন্য কোনও অতিরিক্ত হুক বাস্তবায়ন বা মেলসিস্টেম জ্ঞানের প্রয়োজন নেই। ইমেল পাঠানো যেমন সহজ:
simple_mail_send($from, $to, $subject, $message);
আপনি ইমেল প্রেরণের সহজ উপায়টি ব্যবহার করতে পারেন, মেলসিসটেমটি পরীক্ষা করে দেখুন ; এটি একটি মডিউল।
<?php
$my_module = 'foo';
$from = variable_get('system_mail', 'organization@example.com');
$message = array(
'id' => $my_module,
'from' => $from,
'to' => 'test@example.com',
'subject' => 'test',
'body' => 'test',
'headers' => array(
'From' => $from,
'Sender' => $from,
'Return-Path' => $from,
),
);
$system = drupal_mail_system($my_module, $my_mail_token);
if ($system->mail($message)) {
// Success.
}
else {
// Failure.
}
?>
আপনি নিজের কাস্টম মডিউলটির মধ্যে নিজের পছন্দমতো একটি হুক ব্যবহার করে এই কোডটি ব্যবহার করতে পারেন:
function yourmodulename_mail($from = 'default_from', $to, $subject, $message) {
$my_module = 'yourmodulename';
$my_mail_token = microtime();
if ($from == 'default_from') {
// Change this to your own default 'from' email address.
$from = variable_get('system_mail', 'admin@yoursite.com');
}
$message = array(
'id' => $my_module . '_' . $my_mail_token,
'to' => $to,
'subject' => $subject,
'body' => array($message),
'headers' => array(
'From' => $from,
'Sender' => $from,
'Return-Path' => $from,
),
);
$system = drupal_mail_system($my_module, $my_mail_token);
$message = $system->format($message);
if ($system->mail($message)) {
return TRUE;
} else {
return FALSE;
}
}
তারপরে আপনি উপরের ফাংশনটি এভাবে ব্যবহার করতে পারেন:
$user = user_load($userid); // load a user using its uid
$usermail = (string) $user->mail; // load user email to send a mail to it OR you can specify an email here to which the email will be sent
customdraw_mail('default_from', $usermail, 'You Have Won a Draw -- this is the subject', 'Congrats! You have won a draw --this is the body');