邮件正文中的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。
首先,您应该将地址用双引号括起来:
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)));