【问题标题】:Creating new Outlook mail item via javascript and vbscript通过 javascript 和 vbscript 创建新的 Outlook 邮件项目
【发布时间】:2018-06-29 01:36:06
【问题描述】:

我正在创建一个带有按钮的自定义 HTML 页面,该按钮根据用户选择的参数生成和发送电子邮件。用户选择一个团队(决定电子邮件的“收件人”地址)、抄送、主题、正文等。

我将这些变量中的每一个都用 Javascript 表示,因为我最初使用 Mailto: 来制作电子邮件,但我想用 HTML 格式化正文并在按下按钮时自动发送电子邮件,所以我决定使用 VBScript而不是 Mailto。

这是我的代码:

<script>
  var emailTo = $("#teamName").val();
  var emailCC = $("#CC").val();
  var emailSubject = $("#ticketNumber").val();
  var reason = $('#otherRadioBtn').is(':checked')?$("#otherFreeTextField").val():$(".reason:checked").val();
  var emailBody = "<html><body><p><b>Issue:</b> " + $("#issue").val() + "<p><b>Customer Contact Information:</b> " + $("#contactInformation").val() + "<p><b>Requested Action:</b> " + $(".requestedAction:checked").val() + "<p><b>Reason:</b> " + reason + "<p><b>AWorkaround Available?</b> " + $(".workaround:checked").val() + "</body></html>";
</script>

<script type="text/vbscript">
  Function sendEmail()
    Dim oApp As New Outlook.Applications
    Dim oEmail As Outlook.MailItem
    Set oEmail = oApp.CreateItem(olMailItem)
    oEmail.To = emailTo
    oEmail.CC = emailCC
    oEmail.Subject = emailSubject
    oEmail.HTMLBody = emailBody
    With oEmail
      If Not IsNull(.To) And Not IsNull(.Subject) And Not ISNull(.HTMLBody) Then
        .Send
        Msgbox "Escalation sent successfully!"
      Else
        MsgBox "Please complete all of the fields."
      End If
    End With
  End Function
</script>

<input type="submit" value="Generate email" onclick="sendEmail()">

当我单击“生成电子邮件”按钮时,没有任何反应。我怀疑这与我的 VBSCript 代码有关,尤其是我给它的变量。

这是给我组织中的团队的,我们都使用 Outlook 和 IE。

【问题讨论】:

  • 第一个也是最明显的问题是 Dim oApp As New Outlook.Applications 应该是 Dim oApp : Set oApp = New Outlook.Application 因为你不能在 vbscript 中键入声明变量

标签: javascript jquery vbscript outlook


【解决方案1】:

@Dave 关于类型声明是正确的,但正确的语法是

Dim oApp : Set oApp = CreateObject("Outlook.Application")

另外,您不能在 VBScript 中使用命名常量。您必须设置常量或发送其值。要么:

Const olMailItem = 0
Set oEmail = oApp.CreateItem(olMailItem)

Set oEmail = oApp.CreateItem(0)

【讨论】:

  • 另外:当您通过代码使用 .Send 方法时,Outlook 不喜欢它。用户可能会收到有关试图代表他们发送电子邮件的程序的安全警告。将电子邮件显示给用户可能会更好,然后用户可以发送它。但是,当然,为什么不简单地生成一个MAILTO 链接呢?
猜你喜欢
  • 1970-01-01
  • 2023-04-02
  • 2015-02-15
  • 2015-11-13
  • 1970-01-01
  • 2019-04-09
  • 1970-01-01
  • 2011-06-15
  • 2017-08-29
相关资源
最近更新 更多