[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Seeking win32ole CDO/Mapi help

Keith Sader

3/28/2006 3:20:00 PM

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_2..., but I've run
into the wall of my own ignorance.

Here's what I have so far:

# Ruby code
require 'win32ole'

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

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

exchangeServer = 'myServer
mailbox = 'mail@foo.com'
logonParam = "ProfileInfo:="+ 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.

Which I think is the result of the first error.

thanks,
--
Keith Sader
ksader@gmail.com
http://www.saderfamily.org/roller/p...


4 Answers

Tanner Burson

3/28/2006 3:29:00 PM

0

On 3/28/06, Keith Sader <ksader@gmail.com> wrote:
>
> 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_2..., but I've run
> into the wall of my own ignorance.
>
> Here's what I have so far:
>
> # Ruby code
> require 'win32ole'
>
> mapiSession = WIN32OLE::new('MAPI.Session')
>
> #load MAPI constants
> class MapiConst
> end
> WIN32OLE.const_load(mapiSession, MapiConst)
>
> exchangeServer = 'myServer
> mailbox = 'mail@foo.com'
> logonParam = "ProfileInfo:="+ 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.


--
===Tanner Burson===
tanner.burson@gmail.com
http://tanner... <---Might even work one day...

Keith Sader

3/28/2006 3:41:00 PM

0

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,

On 3/28/06, Tanner Burson <tanner.burson@gmail.com> wrote:
> On 3/28/06, Keith Sader <ksader@gmail.com> wrote:
> >
> > 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_2..., but I've run
> > into the wall of my own ignorance.
> >
> > Here's what I have so far:
> >
> > # Ruby code
> > require 'win32ole'
> >
> > mapiSession = WIN32OLE::new('MAPI.Session')
> >
> > #load MAPI constants
> > class MapiConst
> > end
> > WIN32OLE.const_load(mapiSession, MapiConst)
> >
> > exchangeServer = 'myServer
> > mailbox = 'mail@foo.com'
> > logonParam = "ProfileInfo:="+ exchangeServer + "\r" + mailbox
> > mapiSession.Logon(logonParam)
> > # the rest of the code...


--
Keith Sader
ksader@gmail.com
http://www.saderfamily.org/roller/p...


Keith Sader

3/28/2006 4:54:00 PM

0

Sorry for the double posts, I don't know why gmail is doing that...


--
Keith Sader
ksader@gmail.com
http://www.saderfamily.org/roller/p...


Keith Sader

3/29/2006 3:35:00 AM

0

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

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

instead of \r made everything all better.

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

thanks,

On 3/28/06, Tanner Burson <tanner.burson@gmail.com> wrote:
> On 3/28/06, Keith Sader <ksader@gmail.com> wrote:
> >
> > 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_2..., but I've run
> > into the wall of my own ignorance.
> >
> > Here's what I have so far:
> >
> > # Ruby code
> > require 'win32ole'
> >
> > mapiSession = WIN32OLE::new('MAPI.Session')
> >
> > #load MAPI constants
> > class MapiConst
> > end
> > WIN32OLE.const_load(mapiSession, MapiConst)
> >
> > exchangeServer = 'myServer
> > mailbox = 'mail@foo.com'
> > logonParam = "ProfileInfo:="+ exchangeServer + "\r" + mailbox
> > mapiSession.Logon(logonParam)
> > # the rest of the code...
> >
>
> I believe linefeed is \n and \r is carriage return.

--
Keith Sader
ksader@gmail.com
http://www.saderfamily.org/roller/p...