对于通过电子邮件发送订阅者,我已经在网站的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认为图像可能不安全?