我在使用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);
?>
答案 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()将围绕该文档进行包装。
答案 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']);
}
}