как отправить электронное письмо с помощью 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
Author: tiago calado, 2021-09-01

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();
    }
}
  0
Author: tiago calado, 2021-09-02 00:17:27