Как программно отправить электронное письмо из пользовательских шаблонов электронной почты?


В интерфейсе администратора настроек учетной записи пользователя есть несколько шаблонов электронной почты.

Я хочу загрузить этот шаблон электронной почты и динамически изменить значение токена в своем пользовательском модуле, а затем отправить это электронное письмо?

У кого-нибудь есть какие-нибудь идеи?

 1
Author: Ahmad, 2014-08-25

2 answers

Я нашел решение. Ниже приведен метод, которому я следовал.

Я добавил новый шаблон электронной почты в форму настройки учетной записи пользователя, используя следующий код.

$form['custom_email_template'] = array(
    '#type' => 'fieldset',
    '#title' => t('Contributor Email on Miles recieved'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#tree' => TRUE,
    '#group' => 'email',
  );
  $form['custom_email_template']['user_mail_custom_email_template_subject'] = Array(
    '#type' => 'textfield',
    '#title' => 'Subject',
    '#default_value' => variable_get('user_mail_custom_email_template_subject'),
    '#maxlength' => 180,
  );
  $form['custom_email_template']['user_mail_custom_email_template_body'] = Array(
    '#type' => 'textarea',
    '#title' => 'Body',
    '#default_value' => variable_get('user_mail_custom_email_template_body'),
    '#rows' => 15,
  );

А затем во 2-м обработчике отправки формы настроек учетной записи пользователя я использовал следующий код для сохранения содержимого электронной почты в переменной drupal.

variable_set('user_mail_custom_email_template_subject', $form_state['values']['custom_email_template']['user_mail_custom_email_template_subject']);
variable_set('user_mail_custom_email_template_body', $form_state['values']['custom_email_template']['user_mail_custom_email_template_body']);

А затем используйте следующий код, чтобы получить содержимое шаблона электронной почты.

$body = variable_get('user_mail_custom_email_template_body');
$subject = variable_get('user_mail_custom_email_template_subject');

И использовал функцию str_replace() для замены токенов на динамические значения.

Надеюсь, это кому-нибудь поможет.

 1
Author: Ahmad, 2014-09-02 06:50:19

Используйте модуль Mime-почты . Он содержит mime-message.tpl.php, который мы должны скопировать в папку шаблонов нашей темы. Измените его в соответствии с вашими требованиями.

Мы не можем отправлять HTML-теги, используя тип почты SMTP.

 0
Author: Pravin Ajaaz, 2014-08-25 13:20:18