Я должен послать электронное письмо из своего пользовательского кода php с помощью услуг Drupal.
Другими словами, я заметил, что Drupal может легко послать электронные письма, таким образом, я хотел бы знать, как я могу пользоваться drupal библиотеками для отправки электронных писем, вместо того, чтобы пользоваться внешними библиотеками.
Вам необходимо использовать drupal_mail () и определить hook_mail ( ) в вашем модуле.
Затем вы позвоните первому, и информация об электронной почте будет установлена вторым.
(См. Пример на странице документации для drupal_mail ()
.)
$message = array(
'to' => 'example@mailinator.com',
'subject' => t('Example subject'),
'body' => t('Example body'),
'headers' => array('From' => 'example@mailinator.com'),
);
drupal_mail_send($message);
Предостережения:
drupal_mail ()
не вызывается, другие модули не смогут hook_mail_alter ()
ваш вывод, который может привести к неожиданным результатам. drupal_mail_send ()
не знает, на каком языке отправлять сообщение, поэтому это необходимо выяснить заранее. drupal_mail ()
.
В случае, если ваш модуль отправляет несколько разных типов электронных писем, и вы хотите, чтобы эти шаблоны писем были редактируемыми (например, различные уведомления о регистрации / сбросе пароля и т. Д. Модуля пользователя), используйте hook_mail ()
по-прежнему остается лучшим вариантом. Об этом сообщается в комментарии в документации для drupal_mail () . Если предостережения не важны в вашем случае, вы можете использовать отчетный фрагмент.
Я бы рекомендовал использовать mimemail. Это модуль contrib, который позволит вам с легкостью отправлять HTML письма (+ вложения) или сообщения, содержащие только простой текст. Вот выдержка из файла readme:
функция mimemail():
Этот модуль создает предпочтение пользователя для получения сообщений только в виде обычного текста. Это предпочтение будет учитываться всеми вызовами mimemail()
Ссылка: http://drupal.org/project/mimemail
Надеюсь, это поможет вам!