Создание нового почтового элемента Outlook через javascript и vbscript - PullRequest
0 голосов
/ 29 июня 2018

Я создаю пользовательскую HTML-страницу с кнопкой, которая генерирует и отправляет электронное письмо на основе параметров, выбранных пользователем. Пользователь выбирает команду (решает адрес электронной почты «до»), CC, тему, тело и т. Д.

Каждая из этих переменных выражена в 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 голосов
/ 29 июня 2018

@ Дейв прав в объявлении типа, но правильный синтаксис -

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

Кроме того, вы не можете использовать именованные константы в VBScript. Вы должны либо установить константу, либо отправить ее значение. Либо:

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

или

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