我正在使用CakePHP 3的Mailer Aware特性发送电子邮件。
我的邮件正在使用此功能发送:
SELECT t.id,t.date,t.input,t.output,
SUM(t.output+t.input) OVER(PARTITION BY t.ID ORDER BY t.date) as Total
FROM YourTable t
在我的电子邮件中,我有这个:
public function forgotPassword($user,$password)
{
$this
->from(['no-reply@deltabec.com' => 'DeltaBEC Intraweb'])
->emailFormat('html')
->to([$user->email => $user->name . ' ' . $user->surname])
->subject('New Intraweb Password')
->template('Users' . DS . 'forgot_password', 'default')
->attachments([[
'file' => WWW_ROOT . 'img' . DS . 'logo-dark.png',
'mimetype' => 'image/png',
'contentId' => 'company_logo'
]])
->viewVars(compact('user','password'));
}
但我的邮件是这样的:
我做错了什么?有没有理由不将图像嵌入电子邮件中?
所以我把电子邮件保存为html。这就是它告诉我的:
<?= $this->Html->image('cid:company_logo'); ?>
似乎它对链接进行编码并放置整个网址而不仅仅是<img id="_x0000_i1025" src="/cakesite/img/cid%3Acompany_logo">
我希望它能像我使用它一样工作。我的方式并没有根本错误,所以我在Github添加了一张票,因此可以进行讨论,并希望它能够被添加。
答案 0 :(得分:1)
HTML帮助器image()
方法(分别是URL帮助程序)不识别特殊cid
方案,或者之后未使用//
的任何其他方案:
,因此会尝试创建图片资源网址。
这可能是针对增强请求的内容,或者甚至可能被视为错误,因此您可能需要打开机票over at GitHub。
现在,只需使用帮助程序并手动创建<img>
标记。