通过javascript和vbscript创建新的Outlook邮件项目

时间:2018-06-29 01:36:06

标签: javascript jquery vbscript outlook

我正在创建一个带有按钮的自定义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。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

Set oEmail = oApp.CreateItem(0)