Как послать электронные письма из пользовательского кода PHP?

Я должен послать электронное письмо из своего пользовательского кода php с помощью услуг Drupal.

Другими словами, я заметил, что Drupal может легко послать электронные письма, таким образом, я хотел бы знать, как я могу пользоваться drupal библиотеками для отправки электронных писем, вместо того, чтобы пользоваться внешними библиотеками.

9
задан kiamlaluno 16 November 2011 в 10:36
поделиться

3 ответа

Вам необходимо использовать drupal_mail () и определить hook_mail ( ) в вашем модуле.

Затем вы позвоните первому, и информация об электронной почте будет установлена ​​вторым. (См. Пример на странице документации для drupal_mail () .)

8
ответ дан 4 December 2019 в 11:03
поделиться
$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 () не знает, на каком языке отправлять сообщение, поэтому это необходимо выяснить заранее.
  • Вам придется вручную указать любые другие требуемые заголовки электронной почты («Content-Type» и т. Д.). Обычно об этом заботится drupal_mail () . В случае, если ваш модуль отправляет несколько разных типов электронных писем, и вы хотите, чтобы эти шаблоны писем были редактируемыми (например, различные уведомления о регистрации / сбросе пароля и т. Д. Модуля пользователя), используйте hook_mail () по-прежнему остается лучшим вариантом.

Об этом сообщается в комментарии в документации для drupal_mail () . Если предостережения не важны в вашем случае, вы можете использовать отчетный фрагмент.

7
ответ дан 4 December 2019 в 11:03
поделиться

Я бы рекомендовал использовать mimemail. Это модуль contrib, который позволит вам с легкостью отправлять HTML письма (+ вложения) или сообщения, содержащие только простой текст. Вот выдержка из файла readme:

функция mimemail():

  • $sender - объект пользователя или адрес электронной почты
  • $recipient - объект пользователя или адрес электронной почты
  • $subject - тема письма
  • $body - текст письма в формате html
  • $plaintext - булево, отправлять ли сообщения только в виде обычного текста (по умолчанию false)

Этот модуль создает предпочтение пользователя для получения сообщений только в виде обычного текста. Это предпочтение будет учитываться всеми вызовами mimemail()

Ссылка: http://drupal.org/project/mimemail

Надеюсь, это поможет вам!

4
ответ дан 4 December 2019 в 11:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: