Yes, a large number of recipients is definitely a problem in most MAPI
providers.
For the MSG files, things start breaking apart when you have more than
100-200 recipients
plug
Redemption (url below) saves MSG files with a large # of recipients just
fine by creating an MSG file (which is really an OLE storage file) in a
slightly different format, which is still perfetcly readable by Outlook in
Windows 2000 and above.
Try to replace the following line
myItem.SaveAs "c:\temp\test.msg", olMSG
with
set sItem = CreateObject("Redemption.SafeMailItem")
sItem.Item = myItem
sItem.SaveAs "c:\temp\test.msg", olMSG
/plug
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
"toni santa" wrote in message
...
Hi Sue,
many thanks. But the ResolveAll doesn't resolve the problem.
The approach in the real world is that the email-addresses are taken from
a database and all the recipients receive a periodically information.
After sending the email, it is saved and in the database I create a link
to the saved email so still after some year I 'll know who received which
mail.
The stupid VBA sample I created only to reproduce / show / explain the
problem.
best regards
Toni
"Sue Mosher [MVP-Outlook]" ha scritto nel
messaggio ...
You might try running Recipients.ResolveAll before you try to save.
I can't imagine what the purpose of your approach is, though.
--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003
http://www.turtleflock.com/olconfig/index.htm
and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/jumpstart.aspx
"toni santa" wrote in message
...
Hi,
when saving a mail with a lot of recipients I receive an 'out of memory'
error. OL2003. Is this a bug of MAPI implemented by OL? See (nonsens)code
below to reproduce it.
best regards
Toni
Sub mailtest()
Dim myItem As MailItem
Set myolapp = CreateObject("Outlook.Application")
Set myItem = myolapp.CreateItem(olMailItem)
For i = 1 To 2300
Set myRecipient = myItem.Recipients.Add("[smtp:santaxf@dnetxxyyzz"
&
i & ".com]")
Next
myItem.Display
myItem.SaveAs "c:\temp\test.msg", olMSG
End Sub