Solved

Retrieve signature in Lotus Notes 7

Posted on 2006-07-18
10
1,238 Views
Last Modified: 2010-05-18
Hi all,

The following snippet code works as expected in classic VB (using early binding with reference to Lotus Domino) in that it retrieve the signature in plain text:

stSignature = db.GetProfileDocument("CalendarProfile").GetFirstItem("Signature").Text

How should I do to retrieve the same information when using VB.NET?

TIA,
Dennis
0
Comment
Question by:XL-Dennis
[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
  • 5
  • 3
10 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17140368
Did you add any references for Lotus Notes to your project?

Bob
0
 
LVL 10

Author Comment

by:XL-Dennis
ID: 17140822
Why would I need to add a reference to Lotus Notes Automation Class when it already exist a reference to the Domino Object class?

As I mentioned in my first post the only issue I got is to retrieve the signature (which is plain text and not in HTML). Other then that it works without any issues in VB.NET :-)

BTW, would it be better if I asked about it in the Lotus Notes/Domino forum?

Kind regards,
Dennis



0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17141343
I was trying to figure out from your vague description what where you were having a problem.  You were talking about classic VB6, and so I wanted to make sure that you had all the references in VB.NET.

1) Are you getting exceptions when you try to accomplish the same thing with VB.NET?

2) What problems are having, if they aren't errors?

3) What .NET version are you using?  2002, 2003 or 2005?

Bob
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 10

Author Comment

by:XL-Dennis
ID: 17144950
Bob,

I'm not used to ask questions rather answer questions ;)

It turned out to be a casting issue which finally made it possible to solve the issue.

Platform: VB.NET 2005 with Option Strict On
Notes Client: 7.0.1
Domino Object class: 2.1 - Early binding

The following snippet code shows the solution:

'Instantiate the session.
Dim notSession As New Domino.NotesSessionClass
CType(notSession, Domino.NotesSession).Initialize("")
'Open the local mail database.
Dim notMailDb As Domino.NotesDatabase = CType(notSession, Domino.NotesSessionClass).GetDbDirectory("").OpenMailDatabase
'Grab the profile that holds the signature which will be added to the outgoing e-mail.
 Dim notProfile As Domino.NotesDocument = CType(notMailDb.GetProfileDocument("CalendarProfile"), Domino.NotesDocument)
'Grab the signature, which only can be done with signature in plain test.
Dim stSignature As String = CStr(notProfile.GetFirstItem("Signature").Text)
'Create the outgoing e-mail

I hope that the above can help other developers as well.

Kind regards,
Dennis

0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17151065
Thank you Dennis.  I have worked with Lotus, but not with .NET.  That information may prove to be helpful.

Asking questions is an artform that more people should embrace ;)

Bob
0
 
LVL 10

Author Comment

by:XL-Dennis
ID: 17152377
Bob,

I will keep this thread open as it may come new issues along the road before the solution is complete. After all, working with Lotus through COM is not an easy task.

Kind regards,
Dennis
0
 
LVL 10

Author Comment

by:XL-Dennis
ID: 17210691
To the TA administrator:

I wish to close this question and since I found out the solution myself I would suggest that the points are refunded.

Kind regards,
Dennis
0
 
LVL 10

Author Comment

by:XL-Dennis
ID: 17363311
Hi all,

Below is the function I finally created which is called from Excel:

'Function to create e-mail, add attachments and send.
    Function Create_Email_Notes(ByVal stPriority As String, _
                                ByVal stSubject As String, _
                                ByVal oSendTo As Object, _
                                ByVal oSendCopy As Object, _
                                ByVal stMessage As String, _
                                ByVal bFlag As Boolean, _
                                Optional ByVal stFile As String = "", _
                                Optional ByVal oFiles As Object = "") As Boolean
        'Create and instantiate the Lotus Notes session.
        Dim notSession As New Domino.NotesSessionClass
        CType(notSession, Domino.NotesSession).Initialize("")
        'Open the local mail database.
        Dim notMailDb As Domino.NotesDatabase = CType(notSession, Domino.NotesSessionClass).GetDbDirectory("").OpenMailDatabase
        'Grab the profile that holds the signature which will be added to the outgoing e-mail.
        Dim notProfile As Domino.NotesDocument = CType(notMailDb.GetProfileDocument("CalendarProfile"), Domino.NotesDocument)
        'Grab the signature, which only can be done with signatures in plain text.
        Dim stSignature As String = CStr(notProfile.GetFirstItem("Signature").Text)
        'Create the outgoing e-mail.
        Dim notDoc As Domino.NotesDocument = CType(notMailDb.CreateDocument, Domino.NotesDocument)
        'Create the body space in the outgoing e-mail.
        Dim notItem As Domino.NotesRichTextItem = CType(notDoc.CreateRichTextItem("Body"), Domino.NotesRichTextItem)
        'Create the attachment space in the outgoing e-mail.
        Dim notAttach As Domino.NotesRichTextItem = CType(notDoc.CreateRichTextItem("STFILE"), Domino.NotesRichTextItem)
        'Declare the variable for attached file(s).
        Dim notEmbedded As Domino.NotesEmbeddedObject

        If bFlag Then
            'Add the created file as attachment to the outgoing e-mail.
            notEmbedded = CType(notAttach.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", stFile), Domino.NotesEmbeddedObject)
        Else
            'Add the files as attachments to the outgoing e-mail.
            Dim oItem As Object
            For Each oItem In CType(oFiles, Array)
                notEmbedded = CType(notAttach.EmbedObject(EMBED_TYPE.EMBED_ATTACHMENT, "", CStr(oItem)), Domino.NotesEmbeddedObject)
            Next
        End If
        Try
            'Populate the outgoing e-mail's main properties.
            With notDoc
                .AppendItemValue("Form", "Memo")
                .AppendItemValue("Subject", stSubject)
                .AppendItemValue("SendTo", oSendTo)
                .AppendItemValue("CopyTo", oSendCopy)
                .AppendItemValue("DeliveryPriority", stPriority)
                With notItem
                    .AppendText(stMessage & vbCrLf & vbCrLf)
                    .AppendText(stSignature & vbCrLf & vbCrLf)
                End With
                .SaveMessageOnSend = True
                .Send(True, "")
            End With
            'Set the status for the function to the calling sub.
            Create_Email_Notes = True
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
            'Set the status for the function to the calling sub.
            Create_Email_Notes = False
        Finally
            'Place variables to be handled by the Garbage Collector (GC).
            notEmbedded = Nothing
            notAttach = Nothing
            notItem = Nothing
            notProfile = Nothing
            notDoc = Nothing
            notMailDb = Nothing
            notSession = Nothing
        End Try
    End Function

Kind regards,
Dennis
0
 
LVL 1

Accepted Solution

by:
GhostMod earned 0 total points
ID: 17400109
PAQed with points refunded (500)

GhostMod
Community Support Moderator
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

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

This tutorial demonstrates one way to create an application that runs without any Forms but still has a GUI presence via an Icon in the System Tray. The magic lies in Inheriting from the ApplicationContext Class and passing that to Application.Ru…
Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
In this video, viewers will be given step by step instructions on adjusting mouse, pointer and cursor visibility in Microsoft Windows 10. The video seeks to educate those who are struggling with the new Windows 10 Graphical User Interface. Change Cu…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …

630 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