Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb6 VBScript:通过createobject指定数组(2)_Vb6_Vbscript_Exchangewebservices - Fatal编程技术网

Vb6 VBScript:通过createobject指定数组(2)

Vb6 VBScript:通过createobject指定数组(2),vb6,vbscript,exchangewebservices,Vb6,Vbscript,Exchangewebservices,将此VB6代码转换为VBScript时遇到问题。我调用一个COM对象来创建一个数组作为EmailAddressType。以下是正在工作的VB6代码: 'Assign TO: addresses Dim toAdresses(2) As New EmailAddressType toAdresses(0).EmailAddress = "someone@whocares.com" toAdresses(0).RoutingType = "SMTP" toAdresses(1).EmailAddre

将此VB6代码转换为VBScript时遇到问题。我调用一个COM对象来创建一个数组作为EmailAddressType。以下是正在工作的VB6代码:

'Assign TO: addresses
Dim toAdresses(2) As New EmailAddressType
toAdresses(0).EmailAddress = "someone@whocares.com"
toAdresses(0).RoutingType = "SMTP"
toAdresses(1).EmailAddress = "someoneelse@whocares.com"
toAdresses(1).RoutingType = "SMTP"
email.ToRecipients = toAdresses
我似乎不知道如何将其转换为VBScript。我尝试了以下操作,但在收到电子邮件后出现了一个类型不匹配错误。ToRecipients=ToAddresses

  'Assign TO: addresses
   dim toAdresses(2)
   set toAdresses(0) = createobject("EWS.EWSWebSvc.EmailAddressType")
   set toAdresses(1) = createobject("EWS.EWSWebSvc.EmailAddressType")
    toAdresses(0).EmailAddress = "someone@whocares.com"
    toAdresses(0).RoutingType = "SMTP"
    toAdresses(1).EmailAddress = "someoneelse@whocares.com"
    toAdresses(1).RoutingType = "SMTP"
    email.ToRecipients = toAdresses

顺便说一句,这是Exchange Web服务的COM包装(如果有帮助的话)。

我认为问题在于.ToRecipients属性需要一个EmailAddressType数组,而VBScript中可以轻松获得的只是一个或多个变体数组

看起来这个API不是为了编写脚本而构建的

奇怪的是,它可以从JScript中使用:

不过,我怀疑这些天他们正在通过逐渐删除MSDN上提到的VBScript来改写历史。

只是猜测,试试这个

toAdresses.EmailAddress = "someone@whocares.com;someoneelse@whocares.com"
toAdresses.RoutingType = "SMTP"
email.ToRecipients = toAdresses

如果它不适用于;试试,

它可能不起作用,但您是否尝试过
设置email.ToRecipients=ToAddresses
?电子邮件是什么类型的对象?根据我的经验,COM对象中的数组与VBScript中的数组不同,因此无法将包含对象的数组从VBScript传递到COM。如果您可以输入
电子邮件
对象的代码,您可以创建一个方法
AddRecipient(EmailAddressType emailAddress)
,并通过此接口或在一个循环中通过数组中收集收件人,然后对每个收件人添加
。其他人还没有提到过这一点,但您正在索引2处创建一个空项
Dim ToAddresss(2)
默认值为0到2,结果是3项。经过长期研究,我发现IEnumarables无法从COM封送到VBScript。但是在VB6中可以很好地工作。也许MSDN页面上的示例在?看起来他们把“.NET”掉了:很好。我在读这篇文章时把这一点压在了自己身上。据我所知,它可能指的是在新的IE版本中烘焙的“新JScript”,但.Net似乎更合理。