Compile function Email_Services(@Service, @Params)
/***********************************************************************************************************************

    This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written
    permission from Infineon Technologies.

    Name        :   Email_Services

    Description :   Handler program for all module related services.

    Notes       :   The generic parameters should contain all the necessary information to process the services. Often
                    this will be information like the data Record and Key ID.

    Parameters  :
        Service         [in] -- Name of the service being requested
        Param1-10   [in/out] -- Additional request parameter holders
        Response       [out] -- Response to be sent back to the Controller (MCP) or requesting procedure

    Metadata    :

    History     :   (Date, Initials, Notes)
        01/08/25    djs     Original programmer.

***********************************************************************************************************************/
#pragma precomp SRP_PreCompiler

$Insert APP_INSERTS
$Insert SERVICE_SETUP
$Insert REVDOTNETEQUATES

Declare subroutine Set_Property.Net, Error_Services
Declare function   Environment_Services

GoToService

Return Response or ""

//-----------------------------------------------------------------------------
// SERVICES
//-----------------------------------------------------------------------------

Service SendEmail(FromAddress, ToAddress, Subject, Body)
    
    ErrorMessage = ''
    If ( (FromAddress NE '') and (ToAddress NE '') ) then
    	ErrorCode    = ''
		EmailServer  = Environment_Services('GetIfxEmailServer')
		DotNetHandle = StartDotNet("","4.0")
		DotNetDir    = CheckDotNet('4.0'):'\'
		MailDll      = DotNetDir:'System.dll'
		Set_Property.Net(DotNetHandle, "AssemblyName", MailDll)
		If Not(Get_Status(ErrorCode)) then
			Params          = FromAddress:@FM:ToAddress:@FM:Subject:@FM:Body
			ParamTypes      = 'System.String':@FM:'System.String':@FM:'System.String':@FM:'System.String'
			objEmailMessage = Create_Class.Net(DotNetHandle, "System.Net.Mail.MailMessage", 0, Params, ParamTypes)
			If Not(Get_Status(ErrorCode)) then
				objEmailClient = Create_Class.Net(DotNetHandle, "System.Net.Mail.SmtpClient", 0, EmailServer, 'System.String')
				If Not(Get_Status(ErrorCode)) then
					rv = Send_Message.Net(objEmailClient, 'Send', objEmailMessage, 'RevDotNet', 0)
					If Get_Status(ErrorCode) then
						Convert @FM to ' ' in ErrorCode
						ErrorMessage  = 'Error in ':Service:' service. Get_Status response: ':ErrorCode
					end
					Free_Class.Net(objEmailClient)
				end else
					ErrorMessage = 'Error in ':Service:' service. Get_Status response: ':ErrorCode
				end
				Free_Class.Net(objEmailMessage)
			end else
				ErrorMessage = 'Error in ':Service:' service. Get_Status response: ':ErrorCode
			end
		end else
			ErrorMessage = 'Error in ':Service:' service. Get_Status response: ':ErrorCode
		end
	end else
		ErrorMessage = 'Error in ':Service:' service. Null FromAddress or ToAddress passed into service.'
	end
    
    If ErrorMessage NE '' then Error_Services('Add', ErrorMessage)
	Response = (ErrorMessage EQ '')
	
End Service

