邮件正文中的Mailto链接

时间:2014-10-31 04:19:57

标签: c# vb.net outlook

我在vb.net中有一个要求,Body of Outlook邮件项应该包含一个链接。单击该链接时,应打开另一个邮件项目,其中包含“列表”和“CC”列表。我使用下面的代码,

 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。

3 个答案:

答案 0 :(得分:0)

你究竟是什么意思&#34;我不应该使用Outlook dll&#34;?你没有使用Outlook对象模型吗?

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

答案 1 :(得分:0)

首先 - 你应该将地址括在双引号中:

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

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

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

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

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

答案 2 :(得分:0)

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

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