具有Mailto功能的VS C#按钮 - 它需要打开Outlook的新邮件窗口

时间:2017-07-05 13:49:02

标签: c# asp.net email outlook

我要做的是:

用户点击ASP.net页面上的按钮,然后打开Outlook'新邮件'窗口。 这就是全部。

我的问题:

有了这个 - >

     using Outlook = Outlook = Microsoft.Office.Interop.Outlook;


    OutlookApp outlookApp = new OutlookApp();
    MailItem mailItem = (MailItem)outlookApp.CreateItem(OlItemType.olMailItem);

    mailItem.Subject = "Test";
    mailItem.HTMLBody = "<html><body>This is the message body</body></html>";

    mailItem.Display(false);

我尝试了其他几个代码,我的IIS Web服务器上出现安全错误 - 访问被拒绝。但在localhost Outlook上打开正常。

我看了一遍,每个人都建议NETWORKSERVICE应该是具有完全安全权限的用户。做过某事。在阅读了一些之后,人们建议不要尝试通过Web服务器打开Outlook,原因有几个。所以我决定离开Interops.Outlook。

然后我也尝试了以下内容,它再次适用于我的localhost,但是当发布到Web服务器时,单击该按钮时没有响应。它实际上什么都不做。

    string subject = "Test subject";
    string emailTag = string.Format("mailto:someone@test.com?subject={0}", subject);
    System.Diagnostics.Process.Start(emailTag);

由于

3 个答案:

答案 0 :(得分:1)

您可以使用超链接从网站打开默认电子邮件客户端。

<a class='button' href='mailto:mailto:someone@test.com?subject={0}'>Email</a>

要将超链接显示为按钮,您可以使用以下CSS:

.button {
  font: bold 11px Arial;
  text-decoration: none;
  background-color: #EEEEEE;
  color: #333333;
  padding: 2px 6px 2px 6px;
  border-top: 1px solid #CCCCCC;
  border-right: 1px solid #333333;
  border-bottom: 1px solid #333333;
  border-left: 1px solid #CCCCCC;
}
<a class='button' href='mailto:mailto:someone@test.com?subject={0}'>Email</a>

如果您使用的是bootstrap,则会更容易。只需应用角色属性即可将链接显示为按钮:

<a role='button' href='mailto:mailto:someone@test.com?subject={0}'>Email</a>

答案 1 :(得分:0)

正如vendettamit所述,您可以使用SenEmail在客户端打开Outlook或其他默认邮件应用程序。 Here您可以在mailto:

中找到所有可以使用的内容

答案 2 :(得分:-2)

所以我最初想在ASP按钮内编码。以下代码是:

               ClientScript.RegisterStartupScript(this.GetType(), "FormLoading", "window.open('mailto:someone@test.test', 'email');", true);

这会打开我的Outlook而不会出现问题,我也可以在按钮中添加其他方法。