Silverstripe 3:将徽标图像添加到自定义电子邮件模板中

时间:2019-07-04 01:23:30

标签: php silverstripe

我有一个自定义电子邮件模板,当用户注册到我的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

除了渲染图像外,所有这些都可以很好地工作。

我丢失了某些东西还是将其保存在错误的位置吗?

1 个答案:

答案 0 :(得分:1)

发送电子邮件时,我们需要确保我们所有的URL都是绝对URL,而不是相对URL。

我们可以通过使用$AbsoluteLink进行链接并将$AbsoluteBaseURL附加到资源中来做到这一点。

在SilverStripe 3中,我们可以使用以下方法对资源执行此操作:

<img src="{$AbsoluteBaseURL}{$ThemeDir}/assets/images/mylogo.png" alt="$SiteConfig.Title" />