wp_mail()成功发送时不使用标题'content-type:text / html'

时间:2017-02-06 16:18:06

标签: php wordpress email

我一直在尝试使用可能有助于解决问题的所有来源,但这种方法效果不佳。

这是我的代码:

$subject = 'Pendaftaran Paytren (Daftar-Paytren.net)';
$emaile = 'yukdaftarpaytren@gmail.com';
$message = 'Ada yang daftar<br/>Nama Lengkap : '.$nama.'<br/>Tempat Lahir : '.$tempatlahir.'<br/>Tanggal Lahir : '.$tanggallahir.'<br/>Jenis Kelamin : '.$jeniskelamin.'<br/>Negara : '.$negara.'<br/>Kota Tampat Tinggal : '.$kota.'<br/>Nomor HP : '.$telp.'<br/>Email : '.$email.'<br/>Username : '.$username.'<br/>Pin BB : '.$bb.'<br/>WA : '.$wa;
$headers = array('Content-Type: text/html; charset=UTF-8', 'From: Daftar-Paytren.net <yukdaftarpaytren@gmail.com>');                    

    if (wp_mail( $emaile, $subject, $message, $headers )){
        echo "success";
    }else {
        echo wp_mail( $emaile, $subject, $message, $headers );
    }

据说成功,但我的收件箱中没有收到任何邮件。但如果我删除标题'Content-type:'的东西,那么代码将是:

$subject = 'Pendaftaran Paytren (Daftar-Paytren.net)';
$emaile = 'yukdaftarpaytren@gmail.com';
$message = 'Ada yang daftar<br/>Nama Lengkap : '.$nama.'<br/>Tempat Lahir : '.$tempatlahir.'<br/>Tanggal Lahir : '.$tanggallahir.'<br/>Jenis Kelamin : '.$jeniskelamin.'<br/>Negara : '.$negara.'<br/>Kota Tampat Tinggal : '.$kota.'<br/>Nomor HP : '.$telp.'<br/>Email : '.$email.'<br/>Username : '.$username.'<br/>Pin BB : '.$bb.'<br/>WA : '.$wa;
$headers = 'From: Daftar-Paytren.net <yukdaftarpaytren@gmail.com>' . "\r\n";                    

    if (wp_mail( $emaile, $subject, $message, $headers )){
        echo "success";
    }else {
        echo wp_mail( $emaile, $subject, $message, $headers );
    }

这样就行了,我收到的电子邮件却是纯文字。我需要设置内容类型,以便也可以阅读电子邮件。

我也试过这个,但仍然无效。

$headers[] = 'Content-Type: text/html; charset=UTF-8';
$headers[] = 'From: Daftar-Paytren.net <yukdaftarpaytren@gmail.com>' . "\r\n";

我的代码出了什么问题?请帮我。 请忽略该脚本上的语言。

更新

如果我使用此代码:

add_filter( 'wp_mail_content_type', 'wpdocs_set_html_mail_content_type' );
$emaile = 'yukdaftarpaytren@gmail.com';
$subject = 'Pendaftaran Paytren (Daftar-Paytren.net)';
$message = 'Ada yang daftar<br/>Nama Lengkap : '.$nama.'<br/>Tempat Lahir : '.$tempatlahir.'<br/>Tanggal Lahir : '.$tanggallahir.'<br/>Jenis Kelamin : '.$jeniskelamin.'<br/>Negara : '.$negara.'<br/>Kota Tampat Tinggal : '.$kota.'<br/>Nomor HP : '.$telp.'<br/>Email : '.$email.'<br/>Username : '.$username.'<br/>Pin BB : '.$bb.'<br/>WA : '.$wa;
$headers = 'From: Daftar-Paytren.net <yukdaftarpaytren@gmail.com>' . "\r\n";                   

if (wp_mail( $emaile, $subject, $message, $headers )){
                        echo "sukses";
}else {
echo wp_mail( $emaile, $subject, $message, $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';
} 

电子邮件已发送,我收到了一个收件箱,但它正在将主题作为文件附件(.txt)发送,并以纯文本作为内容。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用过滤器wp_mail_content_type来设置html格式而不是标题?

以下是您对此修改的代码:

<?php
add_filter( 'wp_mail_content_type', function($content_type){
    return 'text/html';
});

$emaile = 'yukdaftarpaytren@gmail.com';
$subject = 'Pendaftaran Paytren (Daftar-Paytren.net)';
$message = 'Ada yang daftar<br/>Nama Lengkap : '.$nama.'<br/>Tempat Lahir : '.$tempatlahir.'<br/>Tanggal Lahir : '.$tanggallahir.'<br/>Jenis Kelamin : '.$jeniskelamin.'<br/>Negara : '.$negara.'<br/>Kota Tampat Tinggal : '.$kota.'<br/>Nomor HP : '.$telp.'<br/>Email : '.$email.'<br/>Username : '.$username.'<br/>Pin BB : '.$bb.'<br/>WA : '.$wa;

wp_mail( $emaile, $subject, $message );

// Reswitch to after use text/plain to prevent conflict
add_filter( 'wp_mail_content_type', function($content_type){
    return 'text/plain';
});
?>

希望它会有所帮助!