/ Forums / Advansys Formativ / Creating Solutions with Formativ / Save message text to a file BEFORE sending… / Reply To: Save message text to a file BEFORE sending…

#6444
Support 2
Moderator

This example saves the message information from a composing item and will work when integrated with the OnSend event.

Let us know if you have any questions.

Regards,

Advansys Support

'-------------------------------------------------------------------------------
' Formativ Solutions for GroupWise
' Save Composing Message
' Designed by: Formativ Business Solution Team
' Copyright (c) 2002 Advansys Corporation (www.advansyscorp.com)
' Version 1.01
'
' Description:
' This applet will save the composing message details to a file.
' You need to provide the folder path where the file will be saved.
'
' File name format: The file name will start with the subject,
' followed by the current date/time.
' For example: my subject_020314153920.txt
' where:
' my subject = The composing message's subject
' 020314153920 = yymmdd + time(24 hours) + current second
'
' INTEGRATIONS: GroupWise mail OnSend.
'-------------------------------------------------------------------------------

dim FSO

Const CAPTION = "Formativ Business Solutions"
HRT = Chr(13) & Chr(10)

' Provide the root folder where the file will be saved
'===============================================================================
const FOLDER_PATH = "c:"
'===============================================================================

' Do you want a confirmation message box when the applet creates the file
' TRUE - Yes, FALSE - No
const CONFIRMATION_DLG = TRUE

'-------------------------------------------------------------------------------
' Main line processing
'-------------------------------------------------------------------------------
Sub Main(Client, GWEvent)

dim iMsgID
dim iMsgText
dim iSubject
dim iAttachCounter

set FSO = CreateObject("Scripting.FileSystemObject")

' Does the folder exist?
if FSO.FolderExists(FOLDER_PATH) then
' Get the composing message ID
iMsgID = GroupWise.ItemMessageIDFromView

' Make sure we have a composing message selected
if (iMsgID = "X00") then
' Get the To, CC, BC, Subject and the body text
iMsgText = iMsgText & "To: " & GroupWise.ItemGetText(iMsgID, itfTo) & HRT
iMsgText = iMsgText & "CC: " & GroupWise.ItemGetText(iMsgID, itfCC) & HRT
iMsgText = iMsgText & "BC: " & GroupWise.ItemGetText(iMsgID, itfBC) & HRT
iSubject = GroupWise.ItemGetText(iMsgID, itfSubject)
iMsgText = iMsgText & "Subject: " & iSubject & HRT & HRT
iMsgText = iMsgText & "Message: " & GroupWise.ItemGetText(iMsgID, itfMessage) & HRT & HRT

' Does the message have any attachments?
iAttachCounter = GroupWise.ItemAttachmentGetCount(iMsgID)
if (iAttachCounter > 0) then
' Loop through the attachments to get the name
for x = 0 to (iAttachCounter -1)
iMsgText = iMsgText & "Attachment " & (x + 1) & ": " & GroupWise.ItemAttachmentGetName(iMsgID, x) & HRT
next
end if

' Save the text into a file
if (iMsgText <> "") then
call SaveTextIntoFile(iMsgText, iSubject)
end if

else
call msgbox("Select a composing message and set the integration with OnSend.", vbInformation, CAPTION)
end if
else
call msgbox(FOLDER_PATH & " - folder not exists.", vbCritical, CAPTION)
end if

set FSO = nothing

End Sub


'-------------------------------------------------------------------------------
' Save the text into a new file
'-------------------------------------------------------------------------------
sub SaveTextIntoFile(aText, aSubject)

dim iFileName
dim MyFile

iFileName = FOLDER_PATH & RemoveInvalidCharacter(aSubject) & "_" & GetCurrentDateTime & ".txt"
Set MyFile = FSO.CreateTextFile(iFileName, True)
MyFile.WriteLine(aText)
MyFile.Close
set MyFile = nothing

' Do you need a confirmation message box?
if CONFIRMATION_DLG then
call msgbox("The following file created." & HRT & iFileName, vbInformation, CAPTION)
end if

end sub


'-------------------------------------------------------------------------------
' Get the current date time to create a unique name
'-------------------------------------------------------------------------------
function GetCurrentDateTime

dim iDay
dim iMonth
dim iYear
dim iTime

iDay = Day(date)
if len(iDay) = 1 then
iDay = "0" & iDay
end if

iMonth = Month(date)
if len(iMonth) = 1 then
iMonth = "0" & iMonth
end if

iYear = Year(date)
if len(iYear) > 2 then
iYear = right(iYear, 2)
end if

iTime = FormatDateTime(Time, vbShortTime)
iTime = Replace(iTime, ":", "")
iTime = Replace(iTime, ",", "")
iTime = Replace(iTime, " ", "")

GetCurrentDateTime = iYear & iMonth & iDay & iTime & Second(Now)

end function


'-------------------------------------------------------------------------------
' Remove invalid characters [The following characters are not acceptable as a file name]
'-------------------------------------------------------------------------------
function RemoveInvalidCharacter(aText)

aText = replace(aText, "/", "")
aText = replace(aText, "", "")
aText = replace(aText, ":", "")
aText = replace(aText, "*", "")
aText = replace(aText, """", "")
aText = replace(aText, "|", "")
aText = replace(aText, "<", "")
aText = replace(aText, ">", "")
aText = replace(aText, "?", "")
aText = replace(aText, ".", "")

RemoveInvalidCharacter = aText

end function