【问题标题】:VS C# Button with Mailto function - it needs to open Outlook's new mail window具有 Mailto 功能的 VS C# Button - 它需要打开 Outlook 的新邮件窗口
【发布时间】:2017-12-09 05:37:25
【问题描述】:

我想做的事:

用户单击 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 服务器上出现安全错误 - 访问被拒绝。但在本地主机上,Outlook 可以正常打开。

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

然后我也尝试了以下方法,它再次在我的本地主机上工作,但是当发布到 Web 服务器时,单击按钮时没有响应。它实际上什么也没做。

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

谢谢

【问题讨论】:

  • 你试过&lt;a href='mailto:mailto:someone@test.com?subject={0}'&gt;Email&lt;/a&gt; 吗?这就是网站应该这样做的方式。在 IIS 中启动进程将在服务器上而不是在客户端上启动它。
  • 不要使用Microsoft.Office.Interop。如果你应该让它工作,那就是要打开 Outlook 的服务器。不是客户。
  • 您正在(试图)在 服务器 上打开 Outlook,而不是在 浏览器所在的计算机 上。您必须让 浏览器 为您完成这项工作 - 不启动新流程,也不自动化 Outlook。
  • @vendettamit 我这样做了。有用。我只想使用按钮而不是链接

标签: c# asp.net email outlook


【解决方案1】:

正如vendettamit 所说,您可以使用 SenEmail 在客户端打开 Outlook 或其他默认邮件应用程序。 Here你可以找到所有可以在mailto:中使用的东西

【讨论】:

  • 好的。谢谢。我做了 Email 这样做。只是我想使用按钮而不是链接。但我知道我将不得不继续链接。
  • 使用 css 你可以让你的链接看起来像按钮。 ``
【解决方案2】:

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

&lt;a class='button' href='mailto:mailto:someone@test.com?subject={0}'&gt;Email&lt;/a&gt;

要将超链接显示为按钮,您可以使用如下 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;
}
&lt;a class='button' href='mailto:mailto:someone@test.com?subject={0}'&gt;Email&lt;/a&gt;

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

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

【讨论】:

  • 好的,这样就可以了。谢谢
【解决方案3】:

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

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

这会毫无问题地打开我的 Outlook,而且我还可以向按钮添加其他方法。

【讨论】:

  • 你原来的问题是不同的,解决方案是基于此提供的。现在您已取消标记答案并尝试通过更改问题范围来回答您的问题。
猜你喜欢
  • 1970-01-01
  • 2016-05-30
  • 2011-05-31
  • 1970-01-01
  • 2019-06-21
  • 2013-10-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
相关资源
最近更新 更多