как отправить электронное письмо с помощью wp mail с изображением в теле письма
Я могу отправлять электронные письма с помощью wp_mail, однако любое изображение на теле не будет отображаться в полученном электронном письме. Есть ли какой-либо способ отправить изображение в сообщении
Это код, используемый для отправки электронных писем:
$to = '[email protected]';
$headers = array('Content-Type: text/html; charset=UTF-8','From: [email protected]');
$subject = "Olá $util, Benvindo(a) ao nosso site!";
$body = '
<h3>Olá </h3></br>
<p>Obrigado por se registar no site</p>
<p>Saudações,</p>
<p>my website</p>';
wp_mail($to, $subject, $body, $headers);
Этот код работает и отправляет электронное письмо, однако, если я добавлю тег изображения с src моего изображения, изображение не будет отображаться, также попытайтесь отправить тег изображения внутри тега тела и все равно получите тот же результат.
Кто угодно!
1 answers
Для тех, у кого такая же проблема, вот мой рабочий код, мне пришлось поместить тег img в тег тела темы, также, как только я использовал $_POST, ссылка просто не работала, пришлось обойти, используя слово "[imagem]" для замены тегом img и загруженной ссылкой.
<div class="container">
<div class="email_maker">
<h2>Enviar vários emails</h2>
<form action="?page=editor_redes" method="post" enctype="multipart/form-data">
<label for="emails_assunto">Assunto:</label>
<input type="text" name="emails_assunto" required><br>
<label for="emails_msg">corpo de email:</label>
<textarea name="emails_msg" rows="20" cols="80" required></textarea><br>
<label for="emails_image">Banner publicitário: use no texto acima [imagem] e aqui apenas links de imagens online</label>
<input type="text" name="emails_image"/><br>
<div class="emails_conf">
<input type="file" name="emails_file" required/>
<label for="emails_file">Destinatários:</label>
</div><br><br>
<input type="submit" name="emails_submit" value="enviar" />
</form>
</div>
<div class="email_preview">
</div>
</div>
<style media="screen">
.container{display:flex;}
.email_maker{width:50%;}
.email_maker h2{color:orange;margin-top:40px;margin-bottom:30px;}
.email_maker form{display:grid;}
.email_maker label[for=emails_file]{float:right;padding-right:10px;padding-top: 7px;}
.email_maker input[type=file]{float:right; color:gray;}
.email_maker input[type=submit]{background:lightyellow;border-radius: 7px;}
</style>
if(isset($_FILES['emails_file'])){
$path_to_wp = $_FILES['emails_file']['tmp_name'];
$file = fopen($path_to_wp,"r");
if (strpos($_POST['emails_msg'], '[imagem]')) {
$ms = explode('[imagem]',$_POST['emails_msg']);
$msg = $ms[0];
$msg .= "<a href='https://ittca.github.io'><img src='".$_POST['emails_image']."'></a>";
$msg .= $ms[1];
} else {
$msg = $_POST['emails_msg'];
}
$body = "<html><head></head><body>";
$body .= $msg;
$body .= "</body></html>";
$a = 1;
while(!feof($file)){
$to = fgets($file);
if($to != ""){
$headers = array('Content-Type: text/html; charset=UTF-8','From: [email protected]');
$enviado = wp_mail($to, $_POST['emails_assunto'], $body, $headers);
if($enviado){
echo '<p>'.$a.' [<a style="color:green;">OK</a>] '.$to.'</p>';
$a+=1;
} else {
echo '<p>'.$a.' [<a style="color:red;"> erro </a>] '.$to.'</p>';
$a+=1;
}
}
}
fclose($file);
}
И чтобы wordpress wp_mail() работал правильно, у меня есть это на моем functions.php .
if (! function_exists('email_sender')){
add_action('phpmailer_init','email_sender');
function email_sender($mail){
$mail->SetFrom('[email protected]', 'Tiago');
$mail->Host = 'smtp-mail.outlook.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'STARTTLS';
$mail->Username = '[email protected]';
$mail->Password = '1234567';
$mail->IsSMTP();
}
}