导入HTML并输出变量

时间:2017-05-02 20:05:03

标签: html powershell

我正在寻找一种在PowerShell中导入模板HTML文件的方法,并且能够使用变量填充它,而变量又以包含用户数据的HTML格式发送电子邮件。

我已经知道如何发送HTML电子邮件了。而且,目前在代码中嵌入了“here”字符串中的HTML。我想通过能够根据国家/地区代码获取HTML模板,更进一步。因此,如果用户在美国,它将收到一封英文HTML数据填写的电子邮件,如果他们是荷兰人,他们将用荷兰语等获得。

echo "=== Pushing data from $SRC to $DEST in two simple steps"
echo "=== 1) Copy to a writable temp directoy in user home"
gcloud compute copy-files "$SRC"/*.* "${GCE_USER}@${GCE_INSTANCE}:$TEMP"
echo "=== 2) Move with 'sudo' to destination"
gcloud compute ssh ${GCE_USER}@${GCE_INSTANCE} --command "sudo mv $TEMP/*.* $DEST" 

here字符串是脚本的一部分,我希望能够从TXT文件中导入它,以免弄乱脚本。

1 个答案:

答案 0 :(得分:0)

不是使用文本文件,而是为所需的每种html语言格式创建一个powershell文件(ps1)。在这些文件中,您可以将单个变量设置为html文本(文件EN_US.ps1):

$bodyENUS = @"Dear <b><font color=red>user</b></font> <br>
            This is a test <b>HTML</b> email for your language preference<br>
            Sincerely,<br> PdeRover<br>"

然后,您可以使用两种方式将变量传递到主ps文件:Dot Sourcing或使用全局变量 Dot Sourcing :通过提供文件名来调用变量 在主文件中:

..\EN_US.ps1
..\PT_PT.ps1

$smtp = "Exchange-Server" 
$to = $Identity 
$from = "Voicemail <P@domain.net>" 
$subject = "This is a Test of HTML Email"
if (user is English speaking){
$bodyByLang = $bodyENUS} 
elseif (user is Portuguese speaking) {
$bodyByLang = $bodyPTPT} 
send-MailMessage -SmtpServer $smtp -To $to -From $from -Subject $subject -Body $bodyByLang -BodyAsHtml -Priority high

全局变量:使用$Global:为变量添加前缀并在运行时调用该文件。 $Global: bodyENUS然后使用$bodyENUS

调用它

我问自己SO question关于使用它们的差异/最佳做法。值得一读。

这足以指出你正确的方向。