用于html电子邮件的textarea中的wp_mail换行符

时间:2013-02-04 14:47:37

标签: php html wordpress email

我在使用wp_mail函数时遇到问题,并希望有人可以帮助我。

我需要在用户添加到文本区域“消息”的电子邮件中插入换行符。

有人可以帮忙吗?

我目前有以下代码从联系表单发送电子邮件:

<?php

if( !isset($_REQUEST) ) return;

require('../../../../wp-load.php');
function wpse27856_set_content_type(){
return "text/html";
}
add_filter( 'wp_mail_content_type','wpse27856_set_content_type' );

$name = $_REQUEST['name'];
$phone = $_REQUEST['phone'];
$email = $_REQUEST['email'];
$msg = $_REQUEST['message'];


$headers = 'From: '.$name.' <'.$email.'>' . "\r\n";
$message = '
<html>
<body>
Someone has made an enquiry on the online contact form:

<br /><br />
        <b>Contact Details:</b><br />
        '.$name.'<br />
        '.$phone.'<br />
        '.$email.'<br /><br />
        <b>Message:</b><br />
        '.$msg.'<br />

        <br /><br />


</body>
</html>
            ';

wp_mail('email@email.co.uk', 'Contact form Message' , $message, $headers);


?>

4 个答案:

答案 0 :(得分:4)

默认情况下,wp_mail()以纯文本形式发送邮件,因此电子邮件客户端不会解析HTML。

在电子邮件中加入以下标题:

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

由于您的电子邮件是HTML格式,因此使用正确的HTML样板(HTML,HEAD,BODY ......)使其有效是一种不错的做法

或者,你可以用回车(\ r \ n)替换你的标签,尽管你仍然需要摆脱标签。

这已经被mail()的PHP文档所涵盖,wp_mail()将围绕该文档进行包装。

http://php.net/manual/en/function.mail.php

答案 1 :(得分:3)

如果您的textarea包含html

,您可以为邮件添加标题
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

答案 2 :(得分:2)

$msg = nl2br($_REQUEST['message']);

答案 3 :(得分:1)

使用此标头在电子邮件中发送html

$allItems = $model::withTrashed()->get();
$allRows = array();
foreach ($allItems as $key => $item) {

    $allRows[] = array(
        $item->id,
        $item->name,
        $item->category->name,
        $item->url,
        strftime('%d-%m-%Y  %H:%M', $item->updated),
        'actions' => array(
            'view' => array(
                'href' => $this->_mainTable. '/view/' .$item->id,
            ),
            'delete' => array(
                'href' => $this->_mainTable. '/delete/' .$item->id,
                'modal' => array(
                    'question' => 'Delete job:',
                    'name' => $item->name. '?',
                    'advice_phrase' => '',
                    'btn_confirm' => 'Delete',
                    'class_phrase' => '',
                ),
            ),
        ),
    );

    if($item->trashed()) {
        unset($allRows[$key]['actions']['delete']);
        dd(end($allRows)['actions']);
    }
}