यहाँ एक और दृष्टिकोण है। (कोड इस सैंडबॉक्स में उपलब्ध है ।)
nodemail.info
name = Nodemail
description = Sends node e-mails.
core = 7.x
nodemail.install '
<?php
function nodemail_enable() {
$current = variable_get('mail_system', array('default-system' => 'DefaultMailSystem'));
$addition = array('nodemail' => 'NodemailMailSystem');
variable_set('mail_system', array_merge($current, $addition));
}
function nodemail_disable() {
$mail_system = variable_get('mail_system', array('default-system' => 'DefaultMailSystem'));
unset($mail_system['nodemail']);
variable_set('mail_system', $mail_system);
}
nodemail.module
<?php
class NodemailMailSystem extends DefaultMailSystem {
public function format(array $message) {
$message['body'] = implode("\n\n", $message['body']);
$message['body'] = drupal_wrap_mail($message['body']);
return $message;
}
}
function nodemail_mail($key, &$message, $params) {
switch ($key) {
case 'node_mail':
$message['headers']['Content-Type'] = 'text/html; charset=UTF-8;';
$message['subject'] = $params['subject'];
$message['body'][] = $params['body'];
break;
}
}
function nodemail_node_insert($node) {
if ($node->type == 'mycontenttype') {
$params['subject'] = 'Node "' . $node->title . '" was created';
$params['body'] = render(node_view($node));
$to = variable_get('site_mail', '');
$from = 'noreply@example.com';
$lang = language_default();
drupal_mail('nodemail', 'node_mail', $to, $lang, $params, $from);
}
}
इस मॉड्यूल को html ई-मेल भेजने की अनुमति देने के लिए इनस्टॉल फाइल कंटेंट और NodemailMailSystem क्लास का उपयोग किया जाता है। 2 अन्य कार्य हुक_मेल () और हुक_नोड_इन्टर () के कार्यान्वयन हैं जो नोड का mycontenttype
निर्माण होने पर ई-मेल भेजने के साथ सौदा करते हैं । एक बात आपको ध्यान रखनी होगी कि Drupal उस नोड नोड फ़ाइल का उपयोग करेगा जिसका उपयोग नोड निर्माण पृष्ठों के लिए किया जा रहा है (या यदि विषय नोड के पास नहीं है। । आप यहां उपयोग किए जाने वाले नोड_व्यू () और ड्रुपल_मेल () फ़ंक्शन की जांच करना चाहते हैं। यह पूरी बात Drupal 7 कोर कार्यक्षमता (कोई योगदान मॉड्यूल की आवश्यकता है) के साथ काम करना चाहिए।