Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 755
  • Last Modified:

VBScript: Error while creating distribution list in Outlook

Hello experts,

We need to create a distribution list in Outlook from a VBScript.
When the number of email addresses to add in the list is small (<90), everytihing is working well.
But when this number approaches 100, we get an error 80004004 and the process is aborted.

According to our tests, the number of addresses from which we have an error is not fixed.
And it seems the error is more related to the total size (in character) of the whole list than to the number of addresses we try to put in this list.
This is the code used to create the list:
Dim myOlApp, myDistList, myMailItem, myRecipients
Set myOlApp = WScript.CreateObject("Outlook.Application")
Set myDistList = myOlApp.CreateItem(7)
myDistList.DLName = InputBox("Enter the name of the new distribution list.")
Set myMailItem = myOlApp.CreateItem(0) 
Set myRecipients = myMailItem.Recipients
myRecipients.Add "address1@gmail.com"
myRecipients.Add "address2@gmail.com"
myRecipients.Add "address3@gmail.com"
...
myRecipients.Add "lastaddress@gmail.com"
myRecipients.ResolveAll
myDistList.AddMembers myRecipients
myDistList.Save
myDistList.Display

Open in new window

The error is occuring on the "myDistList.Save" instruction.
Do you have any idee of how to avoid this error?

For your info, the script is generated/downloaded from a JSP page.

Many thanks in advance for your help.

ossAdmin
0
ossAdmin
Asked:
ossAdmin
  • 2
1 Solution
 
Patrick MatthewsCommented:
Comment out myDistList.Save, and then try to save the list when it displays.  You will get an error message saying that the list is too large.

I was able to run it successfully with 100 members, but not 200 members, so I suspect that the limit is set in the Exchange Server set-up.

A work-around would be to create sub-DLs, and then a master DL that includes each of the subs.

This quick and dirty script worked for me on that score:




Dim myOlApp, myDistList, myMailItem, myRecipients, Recip
Dim Name1, Name2, Name3
Set myOlApp = CreateObject("Outlook.Application")
Set myDistList = myOlApp.CreateItem(7)
Name1 = InputBox("Enter the name of the first sub-distribution list.")
Name2 = InputBox("Enter the name of the second sub-distribution list.")
Name3 = InputBox("Enter the name of the master distribution list.")

myDistList.DLName = Name1
Set myMailItem = myOlApp.CreateItem(0) 
Set myRecipients = myMailItem.Recipients
myRecipients.Add "address1@gmail.com"
myRecipients.Add "address2@gmail.com"
myRecipients.Add "address3@gmail.com"

'...
myRecipients.Add "address4@gmail.com"
myRecipients.Add "address5@gmail.com"
myRecipients.Add "address6@gmail.com"
myRecipients.Add "address7@gmail.com"
myRecipients.Add "address8@gmail.com"
myRecipients.Add "address9@gmail.com"
myRecipients.Add "address10@gmail.com"
myRecipients.Add "address11@gmail.com"
myRecipients.Add "address12@gmail.com"
myRecipients.Add "address13@gmail.com"
myRecipients.Add "address14@gmail.com"
myRecipients.Add "address15@gmail.com"
myRecipients.Add "address16@gmail.com"
myRecipients.Add "address17@gmail.com"
myRecipients.Add "address18@gmail.com"
myRecipients.Add "address19@gmail.com"
myRecipients.Add "address20@gmail.com"
myRecipients.Add "address21@gmail.com"
myRecipients.Add "address22@gmail.com"
myRecipients.Add "address23@gmail.com"
myRecipients.Add "address24@gmail.com"
myRecipients.Add "address25@gmail.com"
myRecipients.Add "address26@gmail.com"
myRecipients.Add "address27@gmail.com"
myRecipients.Add "address28@gmail.com"
myRecipients.Add "address29@gmail.com"
myRecipients.Add "address30@gmail.com"
myRecipients.Add "address31@gmail.com"
myRecipients.Add "address32@gmail.com"
myRecipients.Add "address33@gmail.com"
myRecipients.Add "address34@gmail.com"
myRecipients.Add "address35@gmail.com"
myRecipients.Add "address36@gmail.com"
myRecipients.Add "address37@gmail.com"
myRecipients.Add "address38@gmail.com"
myRecipients.Add "address39@gmail.com"
myRecipients.Add "address40@gmail.com"
myRecipients.Add "address41@gmail.com"
myRecipients.Add "address42@gmail.com"
myRecipients.Add "address43@gmail.com"
myRecipients.Add "address44@gmail.com"
myRecipients.Add "address45@gmail.com"
myRecipients.Add "address46@gmail.com"
myRecipients.Add "address47@gmail.com"
myRecipients.Add "address48@gmail.com"
myRecipients.Add "address49@gmail.com"
myRecipients.Add "address50@gmail.com"
myRecipients.Add "address51@gmail.com"
myRecipients.Add "address52@gmail.com"
myRecipients.Add "address53@gmail.com"
myRecipients.Add "address54@gmail.com"
myRecipients.Add "address55@gmail.com"
myRecipients.Add "address56@gmail.com"
myRecipients.Add "address57@gmail.com"
myRecipients.Add "address58@gmail.com"
myRecipients.Add "address59@gmail.com"
myRecipients.Add "address60@gmail.com"
myRecipients.Add "address61@gmail.com"
myRecipients.Add "address62@gmail.com"
myRecipients.Add "address63@gmail.com"
myRecipients.Add "address64@gmail.com"
myRecipients.Add "address65@gmail.com"
myRecipients.Add "address66@gmail.com"
myRecipients.Add "address67@gmail.com"
myRecipients.Add "address68@gmail.com"
myRecipients.Add "address69@gmail.com"
myRecipients.Add "address70@gmail.com"
myRecipients.Add "address71@gmail.com"
myRecipients.Add "address72@gmail.com"
myRecipients.Add "address73@gmail.com"
myRecipients.Add "address74@gmail.com"
myRecipients.Add "address75@gmail.com"
myRecipients.Add "address76@gmail.com"
myRecipients.Add "address77@gmail.com"
myRecipients.Add "address78@gmail.com"
myRecipients.Add "address79@gmail.com"
myRecipients.Add "address80@gmail.com"
myRecipients.Add "address81@gmail.com"
myRecipients.Add "address82@gmail.com"
myRecipients.Add "address83@gmail.com"
myRecipients.Add "address84@gmail.com"
myRecipients.Add "address85@gmail.com"
myRecipients.Add "address86@gmail.com"
myRecipients.Add "address87@gmail.com"
myRecipients.Add "address88@gmail.com"
myRecipients.Add "address89@gmail.com"
myRecipients.Add "address90@gmail.com"
myRecipients.Add "address91@gmail.com"
myRecipients.Add "address92@gmail.com"
myRecipients.Add "address93@gmail.com"
myRecipients.Add "address94@gmail.com"
myRecipients.Add "address95@gmail.com"
myRecipients.Add "address96@gmail.com"
myRecipients.Add "address97@gmail.com"
myRecipients.Add "address98@gmail.com"
myRecipients.Add "address99@gmail.com"
myRecipients.Add "address100@gmail.com"

myRecipients.ResolveAll
myDistList.AddMembers myRecipients
myDistList.Save
Set myRecipients = Nothing
Set myMailItem = Nothing
Set myDistList = Nothing

Set myDistList = myOlApp.CreateItem(7)
myDistList.DLName = Name2
Set myMailItem = myOlApp.CreateItem(0) 
Set myRecipients = myMailItem.Recipients

myRecipients.Add "address101@gmail.com"
myRecipients.Add "address102@gmail.com"
myRecipients.Add "address103@gmail.com"
myRecipients.Add "address104@gmail.com"
myRecipients.Add "address105@gmail.com"
myRecipients.Add "address106@gmail.com"
myRecipients.Add "address107@gmail.com"
myRecipients.Add "address108@gmail.com"
myRecipients.Add "address109@gmail.com"
myRecipients.Add "address110@gmail.com"
myRecipients.Add "address111@gmail.com"
myRecipients.Add "address112@gmail.com"
myRecipients.Add "address113@gmail.com"
myRecipients.Add "address114@gmail.com"
myRecipients.Add "address115@gmail.com"
myRecipients.Add "address116@gmail.com"
myRecipients.Add "address117@gmail.com"
myRecipients.Add "address118@gmail.com"
myRecipients.Add "address119@gmail.com"
myRecipients.Add "address120@gmail.com"
myRecipients.Add "address121@gmail.com"
myRecipients.Add "address122@gmail.com"
myRecipients.Add "address123@gmail.com"
myRecipients.Add "address124@gmail.com"
myRecipients.Add "address125@gmail.com"
myRecipients.Add "address126@gmail.com"
myRecipients.Add "address127@gmail.com"
myRecipients.Add "address128@gmail.com"
myRecipients.Add "address129@gmail.com"
myRecipients.Add "address130@gmail.com"
myRecipients.Add "address131@gmail.com"
myRecipients.Add "address132@gmail.com"
myRecipients.Add "address133@gmail.com"
myRecipients.Add "address134@gmail.com"
myRecipients.Add "address135@gmail.com"
myRecipients.Add "address136@gmail.com"
myRecipients.Add "address137@gmail.com"
myRecipients.Add "address138@gmail.com"
myRecipients.Add "address139@gmail.com"
myRecipients.Add "address140@gmail.com"
myRecipients.Add "address141@gmail.com"
myRecipients.Add "address142@gmail.com"
myRecipients.Add "address143@gmail.com"
myRecipients.Add "address144@gmail.com"
myRecipients.Add "address145@gmail.com"
myRecipients.Add "address146@gmail.com"
myRecipients.Add "address147@gmail.com"
myRecipients.Add "address148@gmail.com"
myRecipients.Add "address149@gmail.com"
myRecipients.Add "address150@gmail.com"
myRecipients.Add "address151@gmail.com"
myRecipients.Add "address152@gmail.com"
myRecipients.Add "address153@gmail.com"
myRecipients.Add "address154@gmail.com"
myRecipients.Add "address155@gmail.com"
myRecipients.Add "address156@gmail.com"
myRecipients.Add "address157@gmail.com"
myRecipients.Add "address158@gmail.com"
myRecipients.Add "address159@gmail.com"
myRecipients.Add "address160@gmail.com"
myRecipients.Add "address161@gmail.com"
myRecipients.Add "address162@gmail.com"
myRecipients.Add "address163@gmail.com"
myRecipients.Add "address164@gmail.com"
myRecipients.Add "address165@gmail.com"
myRecipients.Add "address166@gmail.com"
myRecipients.Add "address167@gmail.com"
myRecipients.Add "address168@gmail.com"
myRecipients.Add "address169@gmail.com"
myRecipients.Add "address170@gmail.com"
myRecipients.Add "address171@gmail.com"
myRecipients.Add "address172@gmail.com"
myRecipients.Add "address173@gmail.com"
myRecipients.Add "address174@gmail.com"
myRecipients.Add "address175@gmail.com"
myRecipients.Add "address176@gmail.com"
myRecipients.Add "address177@gmail.com"
myRecipients.Add "address178@gmail.com"
myRecipients.Add "address179@gmail.com"
myRecipients.Add "address180@gmail.com"
myRecipients.Add "address181@gmail.com"
myRecipients.Add "address182@gmail.com"
myRecipients.Add "address183@gmail.com"
myRecipients.Add "address184@gmail.com"
myRecipients.Add "address185@gmail.com"
myRecipients.Add "address186@gmail.com"
myRecipients.Add "address187@gmail.com"
myRecipients.Add "address188@gmail.com"
myRecipients.Add "address189@gmail.com"
myRecipients.Add "address190@gmail.com"
myRecipients.Add "address191@gmail.com"
myRecipients.Add "address192@gmail.com"
myRecipients.Add "address193@gmail.com"
myRecipients.Add "address194@gmail.com"
myRecipients.Add "address195@gmail.com"
myRecipients.Add "address196@gmail.com"
myRecipients.Add "address197@gmail.com"
myRecipients.Add "address198@gmail.com"
myRecipients.Add "address199@gmail.com"
'...

myRecipients.Add "lastaddress@gmail.com"
myRecipients.ResolveAll
myDistList.AddMembers myRecipients
myDistList.Save

Set myRecipients = Nothing
Set myMailItem = Nothing
Set myDistList = Nothing

Set myDistList = myOlApp.CreateItem(7)
myDistList.DLName = Name3
Set Recip = myOlApp.Session.CreateRecipient(Name1)
Recip.Resolve
myDistList.AddMember Recip
Set Recip = myOlApp.Session.CreateRecipient(Name2)
Recip.Resolve
myDistList.AddMember Recip
Set Recip = Nothing

myDistList.Save
Set myDistList = Nothing

Set myOlApp = Nothing

Open in new window

0
 
ossAdminAuthor Commented:
Hello matthewspatrick,

Thanks a lot for your reply.
Yesterday I indeed found the same information here. The information in this link is not 100% correct (I'm running Outlook SP3 and still have the size limitation).

Your proposal is I think the best (and only?) solution to this issue. And I hope our users will accept it (which is another story...).

Many thanks again.

ossAdmin.
0
 
ossAdminAuthor Commented:
Hello matthewspatrick,

I've closed this question too soon...
I've been trying to implement the sub-lists solution you proposed, as well as several variants without success.

The result is always the same: the sub-lists are well created, but the main list remains empty.

Could you please explain how you've manage to make it work?

Many thanks in advance.

ossAdmin.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now