Seeking win32ole CDO/Mapi help

K

Keith Sader

I'm trying to read a remote mail store using the CDO OLE interface
using the ProfileInfo interface as described here:
http://www.vbip.com/books/1861002068/chapter_2068_04.asp, but I've run
into the wall of my own ignorance.

Here's what I have so far:

# Ruby code
require 'win32ole'

mapiSession =3D WIN32OLE::new('MAPI.Session')

#load MAPI constants
class MapiConst
end
WIN32OLE.const_load(mapiSession, MapiConst)

exchangeServer =3D 'myServer
mailbox =3D '(e-mail address removed)'
logonParam =3D "ProfileInfo:=3D"+ exchangeServer + "\r" + mailbox
mapiSession.Logon(logonParam)
# the rest of the code...

However the Logon method throws the following set of exceptions.

First I get a pop-up dialog stating that the Profile Name contains
invalid characters.

From the above link: "The ProfileInfo is a string that consists of
three parts. The first is the name of the Exchange Server. The second
is always a linefeed character."

I think part of my problem is I'm not getting the correct character in
as the linefeed. Can someone validate that? Maybe I'm missing and
easy Ruby trick to add a linefeed to a string?

The other exception is as follows:

Logon
OLE error code:1087 in Collaboration Data Objects
[Collaboration Data Objects - [E_INVALIDARG(80070057)]]
HRESULT error code:0x80020009
Exception occurred.
C:/devenv/Client
Application/RubyReplacement/ExampleOutlookScript.rb:13:in
`method_missing'
C:/devenv/Client Application/RubyReplacement/ExampleOutlookScript.rb:13
C:/devenv/Client
Application/RubyReplacement/ExampleOutlookScript.rb:13:in
`method_missing': Logon (WIN32OLERuntimeError)
OLE error code:1087 in Collaboration Data Objects
[Collaboration Data Objects - [E_INVALIDARG(80070057)]]
HRESULT error code:0x80020009
Exception occurred.=09

Which I think is the result of the first error.

thanks,
 
T

Tanner Burson

------=_Part_23087_16801245.1143559740249
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

I'm trying to read a remote mail store using the CDO OLE interface
using the ProfileInfo interface as described here:
http://www.vbip.com/books/1861002068/chapter_2068_04.asp, but I've run
into the wall of my own ignorance.

Here's what I have so far:

# Ruby code
require 'win32ole'

mapiSession =3D WIN32OLE::new('MAPI.Session')

#load MAPI constants
class MapiConst
end
WIN32OLE.const_load(mapiSession, MapiConst)

exchangeServer =3D 'myServer
mailbox =3D '(e-mail address removed)'
logonParam =3D "ProfileInfo:=3D"+ exchangeServer + "\r" + mailbox
mapiSession.Logon(logonParam)
# the rest of the code...

However the Logon method throws the following set of exceptions.

First I get a pop-up dialog stating that the Profile Name contains
invalid characters.

From the above link: "The ProfileInfo is a string that consists of
three parts. The first is the name of the Exchange Server. The second
is always a linefeed character."

I think part of my problem is I'm not getting the correct character in
as the linefeed. Can someone validate that? Maybe I'm missing and
easy Ruby trick to add a linefeed to a string?


I believe linefeed is \n and \r is carriage return.


--
=3D=3D=3DTanner Burson=3D=3D=3D
(e-mail address removed)
http://tannerburson.com <---Might even work one day...

------=_Part_23087_16801245.1143559740249--
 
K

Keith Sader

While I was explaining it to a co-worker, I stumbled upon a weird
feature of the VB OLE call. The VB OLE call can do a weird
short-circuit and not need the other parameters.

If I change the call to Logon to mapiSession.Logon(nil, nil, nil, nil,
nil, nil, logonParam), it doesn't give me the first set of dialogs
complaining about the invalid charaters, but I still get the 1087
error. Maybe some of the other fields need to not be nil?

thanks,
 
K

Keith Sader

My sincere apologies for being so dense. Yes that was it using

logonParam =3D "ProfileInfo:=3D"+ exchangeServer + "\n" + mailbox

instead of \r made everything all better.

Now I must go bang my head into the wall some more :)

thanks,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,067
Latest member
HunterTere

Latest Threads

Top