因此,作为我创建的网站的一部分,我创建了一个“管理员”部分,用户可以在其中继续编辑网站的一部分,或向订阅了我们新闻通讯的人发送电子邮件。
为了使其变得更容易,我使用了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电子邮件中,真的不确定我如何进行排序,非常感谢您的帮助或指导