邮件正文中的Mailto链接

本文关键字:Mailto 链接 正文 | 更新日期: 2023-09-27 18:28:36

我在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。

邮件正文中的Mailto链接

首先,您应该将地址用双引号括起来:

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

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

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

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

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