【问题标题】:Adding a hyperlink to an email generated through PowerShell向通过 PowerShell 生成的电子邮件添加超链接
【发布时间】:2015-04-26 16:43:19
【问题描述】:

我有一个脚本,目前可以做几件事。它在 Active Directory 中创建一个用户帐户,将数据写入 SQL 表,并向帐户请求者发送一封包含帐户用户名和密码的电子邮件。

我们很想在该电子邮件中添加一个超链接,以便请求者可以单击查看他们的原始请求表,但我似乎不太能理解语法。

因为在 PowerShell 语法和 HTML 链接中都使用了双引号,我将链接定义为一个变量,并将该变量插入到电子邮件的 -body 部分以消除双引号混淆,尽管这可能不是必需的.

谁能帮我在这封电子邮件中插入一个链接? 非常感谢!

当前副本:

"The user account you requested (request #$ReqID) has been created."

我们希望 $ReqID 超链接到 Web 表单。

我定义的变量:

$link = '<a href="http://tsturl/detail.aspx?reqID=$reqID">$ReqID</a>'

但它在电子邮件正文中显示如下:

The user account you requested (request #<a href="http://tsturl/detail.aspx?reqID=$reqID">$ReqID</a>) has been created.

帮助?

【问题讨论】:

  • 您使用什么代码发送电子邮件?你在用System.Net.Mail吗?

标签: html email powershell hyperlink


【解决方案1】:

交换你的引号,即:

$link = "<a href='http://tsturl/detail.aspx?reqID=$reqID'>$ReqID</a>"

或者做:

$link = '<a href="http://tsturl/detail.aspx?reqID=$reqID">$ReqID</a>'
$link = $ExecutionContext.InvokeCommand.ExpandString($link)

除了您的评论之外,如果您希望邮件正文呈现为 HTML,从而显示一个链接,那么您需要告诉您的邮件客户端正文是 HTML。 $link 只是一个普通的旧字符串,不知道它是 HTML。

从您的previous question,我猜您正在使用Send-MailMessage cmdlet。如果是这样,那么您需要指定-BodyAsHtml 开关。

【讨论】:

  • 没用。它现在显示您请求的用户帐户(请求#tsturl/detail.aspx?reqID=5816'>5816</a>)已创建。 (其中 5816 是请求 ID。)
  • @ColleenH218 - 我已经修改了答案。
  • @ColleenH218 - 抱歉,我以为您的意思是字符串插值不起作用,即在 html 锚点中仍然显示 $reqID$ReqID 而不是 $reqID 的值。那么真的有两个问题吗?
  • 不,它会显示 ReqID# 值,但不是 '5678' 成为超链接,它只是以长格式粘贴在超链接中。 (它显示“
  • @ColleenH218 - 即使指定-BodyAsHtml?如果是这样,您可能需要将整个消息包装在&lt;html&gt;&lt;body&gt; your stuff here &lt;/body&gt;&lt;/html&gt; 中。第一个问题已解决(字符串插值),您现在需要向Send-MailMessage 提供一些可以作为 HTML 处理的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 2017-04-24
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多