我在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。
答案 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)));