Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打印屏幕>;ckeditor>;CakePHP CakeEmail_Php_Image_Email_Cakephp_Ckeditor - Fatal编程技术网

打印屏幕>;ckeditor>;CakePHP CakeEmail

打印屏幕>;ckeditor>;CakePHP CakeEmail,php,image,email,cakephp,ckeditor,Php,Image,Email,Cakephp,Ckeditor,我有一个CKEditor 3.6.5(修订版7647)字段(在CakePHP 2.2.1网站上),用户可以在其中粘贴打印屏幕图像(仅适用于Firefox)。粘贴(从word粘贴按钮)生成的html如下所示: <img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 9TXL0Y4OHwAAAA

我有一个CKEditor 3.6.5(修订版7647)字段(在CakePHP 2.2.1网站上),用户可以在其中粘贴打印屏幕图像(仅适用于Firefox)。粘贴(从word粘贴按钮)生成的html如下所示:

<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 9TXL0Y4OHwAAAABJRU5ErkJggg==" />

在某一点上,我必须通过电子邮件发送这些字段上的html,其中应该包括图像

阅读[base64电子邮件签名中的编码图像][1]和[how to Embedded images in email][2]时,我认为电子邮件应该附有图像附件

我的问题是如何转换文件中图像的src?这样我打算在发送之前转换HTML

我已成功地尝试附加具有以下内容的文件:

$data = base64_decode('iVBORw0KGgoAAAANSUhEUgAAAAUA AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 9TXL0Y4OHwAAAABJRU5ErkJggg==');//file_get_contents('http://' . env('HTTP_HOST') . $fileInfo['url'] . '/disable-auth-key:' . Configure::read('Security.salt') . '.' . $fileInfo['ext']);
$handle = fopen(TMP . 'print_screen.png', 'w+');
fwrite($handle, $data);
fclose($handle);

$email = new CakeEmail(array(
    'log' => true,
    'config' => 'smtp',
    'returnPath' => 'return@mydomain.pt',
    'from' => array('app@mydomain.pt' => 'APP'),
    'to'  => array('name@domain.pt' => 'Name'),
    'emailFormat' => 'html',
    'subject' => 'image test',
    'domain' => '@uab.pt',
    'attachments' => array(
        'print_screen.png' => array(
            'file' => TMP . 'print_screen.png',
            'mimetype' => 'image/png',
            'contentId' => 'Print-Screen-01'
        )
    )
));

$email->send('test|<img src="cid:print_screen.png@Print-Screen-01">|');
$data=base64_decode('ivborw0kggoaaaansuhueugaaaua aaafcayaacnblaaaaheleqvqi12p4//8/w38giaxdibke0dhxgljnbao 9TXL0Y4OHwAAAABJRU5ErkJggg=')//文件获取内容('http://'.env('http_HOST')。$fileInfo['url']./禁用身份验证密钥:'.Configure::read('Security.salt')。$fileInfo['ext']);
$handle=fopen(TMP.'print_screen.png','w+');
fwrite($handle,$data);
fclose($handle);
$email=new-CakeEmail(数组)(
'log'=>真,
“配置”=>“smtp”,
'返回路径'=>'return@mydomain.pt',
'来自'=>数组('app@mydomain.pt“=>”应用程序“,
'到'=>数组('name@domain.pt“=>”名称“,
“emailFormat”=>“html”,
“主题”=>“图像测试”,
'域'=>'@uab.pt',
“附件”=>数组(
'print_screen.png'=>数组(
'file'=>TMP.'print_screen.png',
'mimetype'=>'image/png',
“contentId”=>“Print-Screen-01”
)
)
));
$email->send('test | |');
在GMail上我可以访问附件文件,但在身体上没有图像。源头在哪里

<div id=":85x">test|<img>|</div>
测试|

我也愿意接受其他达到相同结果的解决方案。

在图像标记的src属性上,cid值应该是我使用的@

正确的代码行

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">test|<img src="cid:print_screen.png@Print-Screen-01">
$email->send('test | |');

您可以在webroot中创建图像,只需在email@noslone谢谢:在我的情况下,图片不应该公开(我的问题中缺少的要求);此解决方案也可以使用,但在许多邮件客户端中,读者必须授权下载文件(至少第一次)才能看到它们;如果这是一个问题,它的优点是发送较小的电子邮件
$email->send('test|<img src="cid:Print-Screen-01">|');