【问题标题】:Mailto link in mail body邮件正文中的 Mailto 链接
【发布时间】:2014-12-27 08:24:18
【问题描述】:

我在 vb.net 中有一个要求,例如 Outlook 邮件项目的正文应该包含一个链接。单击该链接后,应打开另一个邮件项目,其中包含收件人列表和抄送列表。我正在使用下面的代码,

 string Body = "";
 Body += "Please, click the below link to view the details. %0D%0D"
 Body += "<a href=mailto:" + cc + "?Subject=" + Subject + "> Click here to Approve </a>"
 sMsg = User.Redirect("mailto:" + cc + "?Subject=" + Subject + "&body=" + Body)
 ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "showalert", sMsg, True)

但我无法在 Outlook 中正确获取链接。显示如下,

Please, click the below link to view the details. 
<a href=mailto:xxx@domain.com?Subject=DCW Trucking Ltd.> Click here to Approve </a> 

我只需要“单击此处批准为链接”。

我不应该使用 Outlook dll。

【问题讨论】:

    标签: c# vb.net outlook


    【解决方案1】:

    首先 - 你应该用双引号将地址括起来:

    Body += "<a href=\"mailto:" + cc + "?Subject=" + Subject + "\"> Click here to Approve </a>"
    

    因为目前它是无效的 HTML 标记。

    第二 - 您应该将此 Body 变量用作邮件消息的 HTML 正文,而不是文本正文。

    由于它是旧版 ASP.NET 重定向到 mailto 地址,因此该地址的“body”参数中的字符应该是 Url 编码的(使用 HttpUtility.UrlEncode 方法),因此生成的重定向链接应该如下所示:

    mailto:test@example.com?subject=Meow&body=Please%2C%20click%20the%20below%20link%20to%20view%20the%20details.%0A%3Ca%20href%3D%22mailto%3Atest%40example.com%3Fsubject%3DMeow%22%3EClick%20here%20to%20Approve%3C%2Fa%3E
    

    【讨论】:

    • 一旦控件通过 ScriptManager.RegisterStartupscript(...),我的问题中的代码将打开 Outlook 邮件项。我需要使用相同的语法。我不应该使用 Outlook dll 或 MailMessage、SMTP 等……这可能吗?
    • 对不起。它不起作用。我收到格式为正文的邮件。 '+点击+这里+to+Approve+'。我使用了代码'string Body = HttpUtility.UrlEncode(" 点击此处批准");'我只需要“单击此处批准”即可显示为链接。单击该链接时,应打开另一个邮件项目并使用 To list..
    【解决方案2】:

    “我不应该使用 Outlook dll”到底是什么意思?您没有使用 Outlook 对象模型吗?

    在 OOM 中,将 MailItem.HTMLBody 属性设置为可能包含链接的格式正确的 HTML 字符串。

    【讨论】:

    • 没有。我上面发布的代码不包含 Outlook 对象。身体是弦。我正在将正文字符串传递给 mailto。
    • mailto url 只允许纯文本正文。您不能传递 HTML。
    【解决方案3】:

    我想要一个按钮来从本地电子邮件程序创建正文,并从不同的文本框中导入多行,我想出了:

    System.Diagnostics.Process.Start("mailto:sendtoEmailaddress@gmail.com?subject=My Subject Line here&body=" + ((textBox1.Text + "%0A" + textBox2.Text + "%0A" + textBox3.Text)));
    

    【讨论】:

      猜你喜欢
      • 2014-12-16
      • 2021-05-08
      • 1970-01-01
      • 2019-10-21
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-08
      相关资源
      最近更新 更多