web-dev-qa-db-de.com

Mail wird nicht in HTML gesendet

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?

3
Refilon

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';
    }
1
WisdmLabs

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.

0
Sam