Я пытаюсь отправить почту из моего плагина WordPress, но когда я получаю его, он не имеет стилей или изображений.
Я делаю так:
<?php
$headers = array(
"From: Enara <[email protected]>",
"MIME-Version: 1.0",
"Content-type: text/html; charset=UTF-8'");
$message = "<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
</head>
<body>
<div style='background-color: #16a085;'>
<table>
<tr><td colspan='2'><img style=\'margin-botton: 20px;\' src='http://enara.litrodeenergia.com/wp-content/uploads/2015/12/enara-white.png' /></td></tr>
<tr><td colspan='2'>DATOS DE CLIENTE</td></tr>
<tr><td colspan='2'>$particular</td></tr>
<tr>
<td>Nombre:</td>
<td>$nombre<br></td>
</tr>
<tr>
<td>Apellidos:</td>
<td>$apellidos</td>
</tr>
<tr>
<td>Nif:</td>
<td>$nif</td>
</tr>
<tr>
<td>Teléfono:</td>
<td>$telefono</td>
</tr>
</table>
</div>
</body>
</html>";
$result = new stdClass();
$result->mailOk = wp_mail($to, $subject, $message, $headers);
Я попробовал код стиля в моей голове, удалил блоки html / head / body (отправьте только HTML-код div), изменил тип содержимого на iso
и сделал wp фильтр wp_mail_content_type
‘Текст / html’.
Изображение не работает также.
Если я отлаживаю полученное письмо с помощью devtools, я вижу:
<div style="background-color:#16a085">
<table>
<tbody>
<tr>
<td colspan="2"><img src="http://enara.litrodeenergia.com/wp-content/uploads/2015/12/enara-white.png" style=""></td>
</tr>
<tr>
<td colspan="2">DATOS DE CLIENTE</td>
</tr>
<tr>
<td colspan="2">Usuario particular</td>
</tr>
<tr>
<td>Nombre:</td>
<td>afsd<br>
</td>
</tr>
<tr>
<td>Apellidos:</td>
<td></td>
</tr>
<tr>
<td>Nif:</td>
<td></td>
</tr>
<tr>
<td>Teléfono:</td>
<td></td>
</tr>
</tbody>
</table>
И заголовки писем:
Received: from server
Received: from
Subject: Formulario Alta Usuario Web
X-PHP-Script:
Date: Tue, 23 Feb 2016 11:07:52 +0000
From:
Message-ID: <53692f88fe04a71fd41ca2475611fa99@
X-Mailer: PHPMailer 5.2.14 (https://github.com/PHPMailer/PHPMailer)
MIME-Version: 1.0
Content-Type: text/html; charset="UTF-8'"Content-Transfer-Encoding: 8bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname -
X-AntiAbuse: Original Domain -
X-AntiAbuse: Originator/Caller UID/GID - [500 495] / [47 12]
X-AntiAbuse: Sender Address Domain -
X-Get-Message-Sender-Via:
X-Authenticated-Sender:
X-Source: /usr/bin/php
X-Source-Args: /usr/bin/php /home/public_html/
X-Source-Dir: litrodeenergia.com:/public_html/
Return-Path:
X-MS-Exchange-Organization-Antispam-Report: IPOnAllowList
X-MS-Exchange-Organization-SCL: -1
Может быть лучше, если вы поставите код, как вы использовали wp_mail_content_type
Вы должны отфильтровать тип контента перед звонком wp_mail () Например:
add_filter('wp_mail_content_type', function( $content_type ) {
return 'text/html';
});
wp_mail( '[email protected]', 'The subject', '<div>The message</div>' );
Попробуйте добавить
add_filter('wp_mail_content_type',create_function('', 'return "text/html"; '));
Кажется по умолчанию wp_mail()
возвращается text/plain
содержание.
Вы можете использовать функцию wp_mail () WordPress для отправки электронных писем с вашего сайта WordPress. Однако тип содержимого по умолчанию — «text / plain», что не позволяет использовать HTML. Если вы хотите отправлять электронные письма в формате HTML, вам необходимо установить тип содержимого электронной почты «text / html» с помощью фильтра «wp_mail_content_type».
Источник: Как отправлять электронные письма в формате HTML из WordPress
редактировать
Кажется, проблема связана с отображением HTML-содержимого почтовым клиентом.