Как программно отправить электронное письмо из пользовательских шаблонов электронной почты?
В интерфейсе администратора настроек учетной записи пользователя есть несколько шаблонов электронной почты.
Я хочу загрузить этот шаблон электронной почты и динамически изменить значение токена в своем пользовательском модуле, а затем отправить это электронное письмо?
У кого-нибудь есть какие-нибудь идеи?
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()
для замены токенов на динамические значения.
Надеюсь, это кому-нибудь поможет.
Используйте модуль Mime-почты . Он содержит mime-message.tpl.php
, который мы должны скопировать в папку шаблонов нашей темы. Измените его в соответствии с вашими требованиями.
Мы не можем отправлять HTML-теги, используя тип почты SMTP.