?
Solved

VBScript: Error while creating distribution list in Outlook

Posted on 2011-02-20
3
Medium Priority
?
736 Views
Last Modified: 2012-05-11
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
Comment
Question by:ossAdmin
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 93

Accepted Solution

by:
Patrick Matthews earned 2000 total points
ID: 34939143
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
 

Author Comment

by:ossAdmin
ID: 34940889
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
 

Author Comment

by:ossAdmin
ID: 34972932
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

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

How to resolve IMCEAEX NDRs in Exchange or Exchange Online related to invalid X500 addresses.
When you have clients or friends from around the world, it becomes a challenge to arrange a meeting or effectively manage your time. This is where Outlook's capability to show 2 time zones in one calendar comes in handy.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …
Many of my clients call in with monstrous Gmail overloading issues with Outlook. A quick tip is to turn off the All Mail and Important folders from synching. Here is a quick video I made to show you how to turn off these and other folders in Gmail s…
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question