给订户发送电子邮件

时间:2019-07-31 10:57:55

标签: php tinymce phpmailer

对于通过电子邮件发送订阅者,我已经在网站的admin部分中创建了一个部分,允许用户执行此操作。我一直在使用文本编辑器TinyMCE来执行此操作,但是在上传图像时遇到了一些问题。图片会进入我的工作电子邮件,但Outlook仅显示一些,而gmail不显示任何图像,只是图像的轮廓。

为此,我一直在使用php mailer,但似乎找不到找到使Outlook和Gmail显示图像的解决方案。我的问题是,有没有办法对此进行分类?还是我使这个问题复杂化了,如果是的话,一种更简单的解决方法是什么?电子邮件存储在我的sql表中。

这是用户创建电子邮件的代码:

<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 : true,
    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>

这是我的createEmail.php页面:

<?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'];


echo $body;

$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();
    $mail->smtp->reset();
}

 $mail->clearAddresses();



}

我什么意思都不是,但是对于Outlook和gmail都无法通过的图像之一,图像地址是:

数据:图像/ JPEG; BASE64,/ 9J / 4AAQSkZJRgABAQEAYABgAAD / 4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAEAAAAAAAD / 2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz / 2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz / wAARCAC0APADASIAAhEBAxEB / 8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL / 8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usL ......和它进行类似的

是不是因为这个原因,Gmail和Outlook认为图像可能不安全?

0 个答案:

没有答案