用html模板撰写新的Outlook电子邮件

时间:2018-09-24 07:13:47

标签: powershell

我的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(),但似乎也不起作用。

enter image description here

1 个答案:

答案 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()

结果:

enter image description here