有些图像通过tinymce编辑器提供,而其他图像则没有

时间:2019-07-30 15:08:40

标签: php html tinymce phpmailer

因此,作为我创建的网站的一部分,我创建了一个“管理员”部分,用户可以在其中继续编辑网站的一部分,或向订阅了我们新闻通讯的人发送电子邮件。

为了使其变得更容易,我使用了tinymce编辑器,使该人员可以输入文本,插入图像等。完成操作后,他们可以提交,并将电子邮件发送给订阅列表中的每个人。

我遇到的问题是图像将上传到编辑器中,并且某些图像会显示在电子邮件中,而其他图像则不会,并且仅在替代文本无法成功显示图像图标时,才尝试对此进行研究但看不到我要去哪里。还有一个插件可以使用户像在Word之类的应用程序中那样,将图像拖到编辑器上想要的位置,而不必缩进吗?

这是用户创建新闻简报的页面(我将省略不必要的部分):

<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>

这是发送电子邮件的脚本:

<?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();
}

}

更新:因此,在进一步研究之后,我一直感到困惑,这些图像将始终显示在我的工作电子邮件中,而不显示在我自己的个人电子邮件中。有什么我可以解决的吗?

更新2:也尝试了我的gmail帐户,并且图像也未显示在其中。因此它们会显示在我的工作电子邮件中,而不显示在我的Outlook或gmail电子邮件中,真的不确定我如何进行排序,非常感谢您的帮助或指导

0 个答案:

没有答案