मैं अपने कस्टम मॉड्यूल से प्रोग्राम भेजने के लिए Drupal के ईमेल सिस्टम का उपयोग करना चाहूंगा। क्या यह संभव है?
मैं अपने कस्टम मॉड्यूल से प्रोग्राम भेजने के लिए Drupal के ईमेल सिस्टम का उपयोग करना चाहूंगा। क्या यह संभव है?
जवाबों:
हुक_मेल और ड्रुपल_मेल का उपयोग करके आप ई-मेल बना और भेज सकते हैं।
एक ई-मेल का उपयोग 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)
स्पष्ट रूप से मापदंडों को बदलें: $ कुंजी को 'mymail' के बराबर होना चाहिए
कुछ चरणों में एक ई-मेल भेजा जाता है:
$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');