Ini pendekatan lain. (Kode tersedia di kotak pasir ini .)
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);
}
}
Isi file instal dan kelas NodemailMailSystem digunakan untuk memungkinkan modul ini mengirim email html. 2 fungsi lainnya adalah implementasi dari hook_mail () dan hook_node_insert () yang berhubungan dengan pengiriman email ketika sebuah node mycontenttype
dibuat. Satu hal yang harus Anda perhatikan adalah bahwa Drupal akan menggunakan file template simpul dari tema yang sedang digunakan untuk halaman pembuatan simpul (atau inti node.tpl.php jika tema tidak memilikinya) untuk tampilan simpul . Anda mungkin juga ingin memeriksa fungsi node_view () dan drupal_mail () yang digunakan di sini. Semua ini harus bekerja dengan fungsionalitas inti Drupal 7 (tidak ada modul kontribusi yang diperlukan).