我的PowerShell脚本正在打开一个新的撰写Outlook电子邮件窗口,并将正文设置为包含HTML的字符串,但未呈现HTML。任何想法如何实现这一目标?
SELECT JSON_KEYS(full_article_json) as jsonKeys;
// Model
public class Resource extends Model {
public function scopeSelectedOptions($query, $input = [])
{
if(!empty($input)) {
if(array_key_exists('subjects', $input)) {
$query->whereHas('subjects', function($q) use ($input) {
return $q->whereIn('id', $input['subjects']);
});
}
if(array_key_exists('levels', $input)) {
$query->orWhereHas('curriculumLevels', function($q) use ($input) {
return $q->whereIn('id', $input['levels']);
});
}
}
return $query;
}
}
// Controller code
public class ResourcesController extends Controller {
public function index() {
$resources = Resources::SelectedOptions(request()->all())->get();
}
}
是以下字符串。
return redirect()->back()->withInput(request()->except('_token')); // or something close to it
有关如何解释HTML的任何想法。主要问题是我需要能够插入超链接。如果您可以告诉我以其他方式使超链接工作,那么我可以忍受HTML不被解释。
我发现这则旧文章建议使用old()
,但似乎也不起作用。
答案 0 :(得分:2)
首先,仅应设置HTMLBody
属性。设置Body
会覆盖HTML。其次,您可能要替换模板的某些部分(firstname
)。请参见下面的完整示例:
#replaceable parts marked using #
$body = @'
<html>
<head>
<title>test</title>
</head>
<body>
<table>
<tr>
<td>
Dear #firstname#,
Please visit <a href="www.google.com">here</a>
Kind Regards,
</td>
</tr>
<tr>
<td>
<a href="#link1#">Click here</a>
</td>
</tr>only
</table>
</body>
</html>
'@
$subject = 'Sample subject'
$parameters = @{
firstname='MyName';
link1='www.google.com'
}
#replace parts using dictionaryc as source
foreach ($pair in $parameters.GetEnumerator()) {
$body = $body -replace "#$($pair.Key)#",$pair.Value
}
$ol = New-Object -comObject Outlook.Application
$mail = $ol.CreateItem(0)
$mail.Subject = $subject
#set HTML body only
$mail.HTMLBody = $body
$inspector = $mail.GetInspector
$inspector.Activate()
结果: