我有一个名为 local_newsletter
的本地插件,用于发送电子邮件。我需要在 html 电子邮件中显示图像,我在插件中添加了设置,以便用户可以上传图像。
settings.php
$name = 'local_newsletter/logo_image';
$title = get_string('settings:logo:title', 'local_newsletter');
$description = get_string('settings:logo:description', 'local_newsletter');
$settingspage->add(new admin_setting_configstoredfile($name, $title, $description, 'preset', 0));
现在我可以像这样找到文件:
$context = \context_system::instance();
$file = $fs->get_file($context->id, 'local_newsletter', 'preset', 0, '/', 'newsletter_logo.png');
我不确定这是否是获取文件的最佳方式,也是最后一部分,文件名 'newsletter_logo.png'
,是硬编码的(可以用 $config = get_config('local_newsletter');
修复并提取那里的名字)。
但是,我不知道如何获取文件的路径以便我可以发送它,无论是通过 email_to_user()
还是直接使用 PHPMailer
(和 AddEmbeddedImage()
函数) .
这样做:
if ($file) {
file_put_contents('php://stderr', print_r("path: {$file->get_filepath()} \n", TRUE));
}
返回 '/'
。