Okay, ich habe das folgende Problem. Ich versuche eine Mail im HTML-Format zu senden. Ich habe eine Klasse erstellt, die eine HTML-Zeichenfolge zurückgibt und die hervorragend funktioniert.
Wenn ich diese HTML-Mail in meiner Funktion als $ message übergebe, funktioniert das auch. Es wird aber nicht als HTML, sondern als Klartext versendet.
Jetzt habe ich folgende Dinge ausprobiert:
1) $headers = array('Content-Type: text/html; charset=UTF-8'); wp_mail($to, $subject, $message, $headers);
2) $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
3) $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
4) function wpse27856_set_content_type(){ return "text/html"; } add_filter( 'wp_mail_content_type','wpse27856_set_content_type' );
Was könnte es sonst sein?
Probier diese.
add_filter( 'wp_mail_content_type', 'wpdocs_set_html_mail_content_type' );
$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);
// Reset content-type to avoid conflicts -- https://core.trac.wordpress.org/ticket/23578
remove_filter( 'wp_mail_content_type', 'wpdocs_set_html_mail_content_type' );
function wpdocs_set_html_mail_content_type() {
return 'text/html';
}
Ich persönlich würde weder die Funktion wp_mail
- noch die Funktion php mail
- verwenden. Beide geben Ihnen nicht viel Kontrolle über Ihre E-Mail. Wenn Sie HTML-E-Mails senden möchten, ist es eine gute Idee, eine reine Textnachricht damit zu senden, damit Benutzer, die HTML-E-Mails nicht lesen können, Ihre Nachricht auch lesen können.
Schauen Sie sich phpmailer
an, das ist eine sehr gute E-Mail-Sendeklasse, mit der Sie viel Kontrolle über die E-Mail haben. Sie können einer HTML-E-Mail einfachen Text hinzufügen, einen Absendernamen festlegen, anstatt nur Ihre E-Mail-Adresse anzugeben, und so weiter.