Ich erstelle ein einfaches Modul, das HTML-E-Mails an Benutzer für Angebote auf unserer Website sendet.
Ich habe viel gesucht, aber ich kann keine passende Lösung für Drupal finden. Jetzt kann ich aber Klartext Mails verschicken.
Was ist eine schrittweise Anleitung zum Versenden von HTML-E-Mails in Drupal 7?
function example_form_submit( $form,&$form_state) {
$friend_email=$form_state['values']['friend_email'];
$mailto =$friend_email; //gift to a friend
$mailfrom ='[email protected]';
$subject = "another message for HTML email from example.com";
$body="<h2 style='font-size:28px;color:red;'>Hello EMAIL, i here i want to be <b>bolded</b></h2>";
if (drupal_mail('example', 'send_gift', $mailto, language_default(),$params,$mailfrom,TRUE)) {
drupal_set_message(t('Your gift was sent successfully!!!'));
}
else {
drupal_set_message(t('<font color="red">Error occured while sending your mail!!!</font>'));
}
/****hook_mail*/
function example_mail($key,&$message,$params) {
$language = $message['language'];
switch ($key) {
case 'send_gift':
$message['subject']=t($params['subject'], $var, $language->language);
$message['body'][]=$params['body'];
$message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed';
break;
}
}
Antworten:
Wie bereits erwähnt, besteht eine Option darin, das MIME-Mail-Modul zu verwenden. Sie können jedoch auch Ihr benutzerdefiniertes Modul aktivieren, um HTML-E-Mails mit etwas zusätzlichem Code zu senden. Kurz gesagt, Sie müssen die
mail_system
Variable ändern und Ihre eigene Implementierung von schreibenMailSystemInterface
. Ein Beispiel dafür ist der folgende Code.In 'mymodule.install':
In 'mymodule.module':
Sie müssten mymodule-Instanzen durch den Namen Ihres tatsächlichen Moduls ersetzen und dann Ihr Modul deaktivieren und wieder aktivieren, damit die Variable geändert wird, nachdem die Dinge funktionieren sollten. Ein vollständiges Beispiel finden Sie hier . Außerdem stammt diese Seite auf drupal.org von dort, wo ich ursprünglich alle Informationen erhalten habe.
quelle
Das Mime Mail- Modul ist mit ziemlicher Sicherheit das, wonach Sie suchen.
quelle
Vielleicht möchten Sie sich auch das Swift Mailer-Modul ansehen. Sie können HTML-E-Mails mit Inline- und normalen Anhängen (wie Bildern oder Dateien) senden. Darüber hinaus können auf Basis der HTML-E-Mail automatisch Klartextversionen generiert werden.
Sie können einen Blick darauf werfen http://www.drupal.org/project/swiftmailer
Für die Aufzeichnung: Ich bin der Autor und der Betreuer des Moduls.
quelle
Sie senden kein richtiges HTML, Sie schließen nur H1-Tags und B-Tags ein, wahrscheinlich müssen Sie auch vollständige HTML-Tags einschließen, beginnend mit
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
quelle
Keine der obigen Antworten hat für mich funktioniert, daher hier meine Ansicht zur ursprünglichen Frage.
Installieren und aktivieren Sie zunächst das Mime Mail- Modul. In der README.txt finden Sie eine vollständige Anleitung zur Verwendung. Ich gebe dir die kurze Version.
Sie müssen Mime Mail für Ihr Modul aktivieren. Sie können dies tun mit
hook_enable
oderhook_update_N
inexample.install
:Wenn Sie zu gehen, werden
admin/config/system/mailsystem
Sie feststellen, dass ein neuer Eintrag für Ihr Modul hinzugefügt wurde:Jetzt müssen Sie keine
text/html
Header mehr spezifizieren , Mime Mail kümmert sich darum. Das brauchst du also nicht:Wenn Sie möchten, können Sie
$message['plaintext']
Ihrer E-Mail eine andere als HTML-Alternative hinzufügen , dies ist jedoch nicht erforderlich.Das ist es!
quelle