it-swarm.com.de

Gibt es eine Möglichkeit, HTML-formatierte E-Mails mit der wp_mail-Funktion von Wordpress zu senden?

Gibt es einen action_hook oder etwas ähnliches, das mir dabei helfen könnte?

Ich habe versucht, Markup in eine PHP -Zeichenfolgenvariable einzufügen und habe gerade eine E-Mail mit der Funktion wp_mail wie folgt ausgelöst:

$email_to = '[email protected]';
$email_subject = 'Email subject';
$email_body = "<html><body><h1>Hello World!</h1></body></html>";
$send_mail = wp_mail($email_to, $email_subject, $email_body);

Aber es zeigte sich als Klartext?

Irgendwelche Ideen?

37
racl101

von wp_mail Codex Seite :

Der Standardinhaltstyp ist "text/plain", wodurch die Verwendung von HTML nicht möglich ist. Sie können den Inhaltstyp der E-Mail jedoch mithilfe des Filters "wp_mail_content_type" festlegen.

// In theme's functions.php or plug-in code:

function wpse27856_set_content_type(){
    return "text/html";
}
add_filter( 'wp_mail_content_type','wpse27856_set_content_type' );
54
Milo

Alternativ können Sie den Content-Type-HTTP-Header im Parameter $ headers angeben:

$to = '[email protected]';
$subject = 'The subject';
$body = 'The email body content';
$headers = array('Content-Type: text/html; charset=UTF-8');

wp_mail( $to, $subject, $body, $headers );
79
Jewel

Vergessen Sie nicht, den Inhaltstypfilter zu entfernen, nachdem Sie die Funktion wp_mail verwendet haben. Nach der Benennung der akzeptierten Antwort sollten Sie dies tun, nachdem wp_mail ausgeführt wurde:

remove_filter( 'wp_mail_content_type','wpse27856_set_content_type' );

Überprüfen Sie dieses Ticket hier - Setzen Sie den Inhaltstyp zurück, um Konflikte zu vermeiden - http://core.trac.wordpress.org/ticket/23578

10
0v3rth3d4wn