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

通过javascript和vbscript创建新的Outlook邮件项目,javascript,jquery,vbscript,outlook,Javascript,Jquery,Vbscript,Outlook,我正在创建一个带有按钮的自定义HTML页面,该按钮根据用户选择的参数生成并发送电子邮件。用户选择团队(决定电子邮件的“收件人”地址)、抄送、主题、正文等 我将这些变量都用Javascript表示,因为我最初使用Mailto:来制作电子邮件,但我想用HTML格式化正文并在按下按钮时自动发送电子邮件,所以我决定使用VBScript而不是Mailto 这是我的密码: <script> var emailTo = $("#teamName").val(); var emailCC =

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

var emailTo=$(“#团队名称”).val();
var emailCC=$(“#CC”).val();
var emailSubject=$(“#ticketNumber”).val();
var reason=$(''otherRadioBtn')。是(':checked')?$(“'otherFreeTextField”).val():$(“.reason:checked”).val();
var emailBody=“问题:”+$(“#问题”).val()+“客户联系信息:“+$(“#联系信息”).val()+”请求的操作:“+$(.requestedAction:checked”).val()+”原因:“+原因+”可用的解决方案?+$(.workaround:checked”).val()+”;
函数sendmail()
Dim oApp作为新的Outlook.Applications
将oEmail设置为Outlook.MailItem
设置oEmail=oApp.CreateItem(olMailItem)
oEmail.To=emailTo
oEmail.CC=emailCC
oEmail.Subject=emailSubject
oEmail.HTMLBody=emailBody
用电子邮件
如果不为IsNull(.To)且不为IsNull(.Subject)且不为IsNull(.HTMLBody),则
.发送
Msgbox“升级已成功发送!”
其他的
MsgBox“请填写所有字段。”
如果结束
以
端函数
当我单击“生成电子邮件”按钮时,什么也没有发生。我怀疑这与我的VBSCript代码有关,特别是我给它的变量


这是为我所在组织的团队准备的,我们都使用Outlook和IE。

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

Dim oApp : Set oApp = CreateObject("Outlook.Application")
此外,不能在VBScript中使用命名常量。您必须设置常量或发送其值。要么:

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


第一个也是最明显的问题是
Dim oApp As New Outlook。应用程序
应该是
Dim oApp:Set oApp=New Outlook。应用程序
,因为您不能在vbscript中键入declare变量。另外:Outlook不喜欢使用
。通过代码发送
方法。用户可能会收到有关试图代表其发送电子邮件的程序的安全警告。最好将电子邮件显示给用户,然后用户可以发送它。但是,当然,为什么不简单地生成一个
MAILTO
链接呢?
Set oEmail = oApp.CreateItem(0)