使用带有TinyMCE内联图像的PHPMailer发送HTML电子邮件

时间:2016-10-13 18:54:36

标签: php phpmailer tinymce-4 responsive-filemanager

请帮忙!我一直试图弄清楚这几天,我无法做到。我正在尝试使用PHPMailer发送HTML电子邮件。要包含/插入内嵌图像,我使用TinyMCE的插件Responsive FileManager。电子邮件成功发送并显示HTML,但问题是,TinyMCE编辑器中的图像未显示。

以下是我在TinyMCE编辑器中使用内嵌图像收到的测试电子邮件的屏幕截图。

enter image description here

以下是表单代码:

<head>
<script src="../js/tinymce/tinymce.min.js"></script>
<script language="javascript" type="text/javascript">
tinymce.init({ 
    selector:'textarea', 
    menubar: false,
    height: '300px',
    themes: 'modern',
    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 imagetools responsivefilemanager'],
    toolbar: ['undo redo | styleselect | bold italic | forecolor backcolor | imageupload responsivefilemanager',
    'alignleft aligncenter alignright | bullist numlist | outdent indent | table | preview'],     

    external_filemanager_path:'/responsivefilemanager/filemanager/',
    filemanager_title:'Responsive Filemanager',
    external_plugins: { 'filemanager' : '/responsivefilemanager/filemanager/plugin.min.js'}
}); 
</script>
</head>
<body>
    <form action="CascadeFunction.php" method="post" name="cascader" id="cascader" enctype="multipart/form-data">
         <label for="details"><span class="required">*</span>DETAILS</label>
            <textarea name="details" cols="70%" rows="10" id="details"></textarea>
         <input class="btn btn-primary" name="Submit" type="submit" id="submit" value="POST &amp; CASCADE" />
    </form>
</body>

以下是处理电子邮件的代码(CascadeFunction.php)。

require_once('../PHPMailer_5.2.1/class.phpmailer.php');
$mail = new PHPMailer();
$subject = "CASCADE: Test Subject Cascade"; 
$msgbody = $upload_name;        
$mail->Subject = "$subject";
$mail->IsHTML(true); // This tells the PhPMailer that the messages uses HTML.
$mail->MsgHTML(str_replace(
    array(
        '%Audience%',
        '%Category%',
        '%Title%',
        '%Type%',
        '%quickDescr%',
        '%details%'
    ), 
    array(
        $Audience,
        $Category,
        $Title,
        $Type,
        $QuickDescr,
        $CascadeDetails
    ), file_get_contents('emailtemplates/email.php')), dirname(__FILE__));
$mail->AddEmbeddedImage('images/LogoWhiteBG.png', 'logo');

注意: $mail->AddEmbeddedImage,图片在电子邮件中正确显示。只有TinyMCE编辑器中的图像显示为已损坏。

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法。只需在tinymce.init中添加此1个班轮代码,即可修复它。

tinymce.init({ 
    convert_urls : false
});