我有一个自定义电子邮件模板,当用户注册到我的silverstripe网站时,我将其用作验证电子邮件,但它不会显示图像。
我想在电子邮件末尾添加我的徽标,但它不会呈现任何图像,只会加载替代文本。
我发送电子邮件的代码:
$email = MemberConfirmationEmail::create($this, $member);
$approve = Controller::join_links(
Director::baseURL(),
'member-approval',
$member->ID,
'?token=' . $member->ValidationKey
);
$email->setSubject('Registration Account Confirmation'));
$email->setTemplate('CustomMemberConfirmationEmail');
$email->populateTemplate(array('ApproveLink' => Director::absoluteURL($approve)));
$email->send();
此电子邮件模板中带有图像标签,图像保存在:
themes/mytheme/assets/images/mylogo.png
除了渲染图像外,所有这些都可以很好地工作。
我丢失了某些东西还是将其保存在错误的位置吗?
答案 0 :(得分:1)
发送电子邮件时,我们需要确保我们所有的URL都是绝对URL,而不是相对URL。
我们可以通过使用$AbsoluteLink
进行链接并将$AbsoluteBaseURL
附加到资源中来做到这一点。
在SilverStripe 3中,我们可以使用以下方法对资源执行此操作:
<img src="{$AbsoluteBaseURL}{$ThemeDir}/assets/images/mylogo.png" alt="$SiteConfig.Title" />