一些图像来自tinymce编辑器,但其他图像没有

So as part of the website I have created I made an Admin section where users can go on and edit parts of the website or send emails to people who have subscribed to our newsletter.

To try make it easier I have used tinymce editor to allow the person to enter text, insert images etc. Once they are done they can submit and the email is sent to everyone in the subscription list.

The problem I am having is that the images will upload onto the editor and some will appear on the email but others won't and will just show that image icon when it has been unsuccessful with the alternative text, tried researching into this but can't see where I am going wrong. Also is there a plugin that will allow the user to just drag the image where they want to on the editor like you can in applications like word instead of just having to indent it?

This is the page where the user creates the newsletter(I will leave out the unnecessary parts):

<script src="//cdn.tinymce.com/4/tinymce.min.js"></script>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js" type="text/javascript"></script>
  <script>
$(document).ready(function() {
  tinymce.init({
    selector: "textarea",
    convert_urls : false,
    theme: "modern",
    paste_data_images: true,
    plugins: [
      "advlist autolink lists link image charmap print preview hr anchor pagebreak",
      "searchreplace wordcount visualblocks visualchars code fullscreen",
      "insertdatetime media nonbreaking save table contextmenu directionality",
      "emoticons template paste textcolor colorpicker textpattern"
    ],
    toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
    toolbar2: "print preview media | forecolor backcolor emoticons",
    image_advtab: true,
    file_picker_callback: function(callback, value, meta) {
      if (meta.filetype == 'image') {
        $('#upload').trigger('click');
        $('#upload').on('change', function() {
          var file = this.files[0];
          var reader = new FileReader();
          reader.onload = function(e) {
            callback(e.target.result, {
              alt: ''
            });
          };
          reader.readAsDataURL(file);
        });
      }
    },
    templates: [{
      title: 'Test template 1',
      content: 'Test 1'
    }, {
      title: 'Test template 2',
      content: 'Test 2'
    }]
  });
});
  </script>

  <style>
  .hidden{display:none;}
  </style>



    <form action='createEmail.php' method='post'>

        <div id="toolbar-container"></div>

        <p><label>Subject</label><br />
        <input type='text' name='subject' required value='<?php if(isset($error)){ echo $_POST['subject'];}?>'></p>

        <p><label>Content</label><br />
        <textarea name='emailCont' cols='60' rows='10'><?php if(isset($error)){ echo $_POST['emailCont'];}?></textarea></p>
         <input name="image" type="file" id="upload" class="hidden" onchange="">

        <p><input type='submit' name='submit' value='Submit'></p>

    </form>

</div>

And this is the script which sends the email:

<?php

require_once('../includes/config.php');

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'C:\PHPMailer\PHPMailer-master\src\Exception.php';
require 'C:\PHPMailer\PHPMailer-master\src\PHPMailer.php';
require 'C:\PHPMailer\PHPMailer-master\src\SMTP.php';



$subject = $_POST['subject'];

$body = $_POST['emailCont'];


$sql = "SELECT email FROM subscribers";

    foreach ($db->query($sql) as $row) {


$mail = new PHPMailer(TRUE);


try {

   $mail->isHTML(true);
  $mail->SetFrom('donotreply@mydomain.com', 'Newsletter');
    $mail->AddAddress($row['email']);
   $mail->isSMTP();
   $mail->Host = 'smtp.gmail.com';
   $mail->SMTPAuth = TRUE;
   $mail->SMTPSecure = 'tls';
  $mail->Username = '********';
   $mail->Password = '*********';
   $mail->Port = 587;

       if ($mail->addReplyTo('*********')) {
        $mail->Subject = $subject;

         //keeps it simple
        $mail->isHTML(true);
        // a simple message body
    $mail->Body = $body. "<centre><a href='http://localhost/jgross/unsubscribe.php'>Unsubscribe</a></centre>";



               //Send the message, check for errors
        if (!$mail->send()) {
            //The reason for failing to send will be in $mail->ErrorInfo

            $msg = 'Sorry, something went wrong. Please try again later.';
        } else {
            $msg = 'The Newsletter was sucessfully sent<br>';
            header("Refresh:3; url=index.php");
            echo "The Newsletter was sucessfully sent<br>";
        }
    } else {
        $msg = 'Invalid email address, message ignored.';
    }



}catch (Exception $e)
{
  echo $e->errorMessage();
}

}

Update: So after looking into it further has just been confusing me more, the images will always show on my work email but not on my own personal one. Is there something I can do to fix this?

Update 2: Tried with my gmail account as well and images do not display there either. So they show on my work email but not my outlook or gmail ones, really unsure of how I can sort this, any help or guidance would be greatly appreciated