true
false
{emailAddressHere}
----------------------------------------------------------------------->
if( not propertyExists('emailTrace') ){
$throw("emailTrace property does not exist. Please declare it.",'','interceptors.EnvironmentSafeMailService.configFilePropertyNotDefined');
}
if( not propertyExists('emailSend') ){
$throw("emailSend property does not exist. Please declare it.",'','interceptors.EnvironmentSafeMailService.configFilePropertyNotDefined');
}
if( not propertyExists('emailOverrideAddress') ){
$throw("emailOverrideAddress property does not exist. Please declare it.",'','interceptors.EnvironmentSafeMailService.configFilePropertyNotDefined');
}
setEmailTrace( getProperty('emailTrace') );
setEmailSend( getProperty('emailSend') );
setEmailOverrideAddress( getProperty('emailOverrideAddress') );
getPlugin("logger").tracer("interceptor envSafe loaded");
var local = StructNew();
// ONLY AFFECT mailService plugin
if ( compareNoCase(arguments.interceptData.pluginPath,"mailService") EQ 0 ) {
//get plugin methodInjector to make our lives easier
local.methodInject = getPlugin("MethodInjector");
local.methodInject.start(arguments.interceptData.oPlugin);
//make copy of original send
this['MailServiceSend'] = arguments.interceptData.oPlugin['send'];
local.md = getMetaData(this['mailServiceSend']);
local.md.NAME = "mailServiceSend";
arguments.interceptData.oPlugin.injectMixin( this['MailServiceSend'] );
//inject new metdata (properties and methods) into MailService
arguments.interceptData.oPlugin.injectPropertyMixin( "emailTrace", this.getEmailTrace(), "variables.instance" );
arguments.interceptData.oPlugin.injectPropertyMixin( "emailSend", this.getEmailSend(), "variables.instance" );
arguments.interceptData.oPlugin.injectPropertyMixin( "emailOverrideAddress", this.getEmailOverrideAddress(), "variables.instance" );
arguments.interceptData.oPlugin.injectMixin( this['getEmailTrace'] );
arguments.interceptData.oPlugin.injectMixin( this['setEmailTrace'] );
arguments.interceptData.oPlugin.injectMixin( this['getEmailSend'] );
arguments.interceptData.oPlugin.injectMixin( this['setEmailSend'] );
arguments.interceptData.oPlugin.injectMixin( this['getEmailOverrideAddress'] );
arguments.interceptData.oPlugin.injectMixin( this['setEmailOverrideAddress'] );
arguments.interceptData.oPlugin.injectMixin( variables['debugConfigured'] );
arguments.interceptData.oPlugin.injectMixin( variables['traceIt'] );
arguments.interceptData.oPlugin.injectMixin( this['send'] );
local.methodInject.stop(arguments.interceptData.oPlugin);
getPlugin("logger").tracer("EnvSafe MailService Functions Loaded");
}
var local = StructNew();
// The return structure
local.rtnStruct.error = true;
local.rtnStruct.errorArray = ArrayNew(1);
//Should we traceit to coldbox dashboard
if (this.getEmailTrace())
traceIt(arguments.payload);
//don't send by default, if in production send it; or if EmailSend Flag is true AND EmailOverrideAddress is set to valid email then send it
local.sendFlag = false;
if ( CompareNoCase(getSetting("Environment"),"PRODUCTION") EQ 0 ) {
local.sendFlag = true;
} else if ( this.getEmailSend() ) {
local.sendFlag = debugConfigured(arguments.payload);
}
if (local.sendFlag)
local.rtnStruct = this.MailServiceSend(arguments.payload);
return local.rtnStruct;
if ( IsValid("email", this.getEmailOverrideAddress() ) ) {
arguments.payload.setTo( this.getEmailOverrideAddress() );
arguments.payload.setCC("");
arguments.payload.setBCC("");
getPlugin("logger").tracer("EnvSafe MailService Mail Addresses Set - #this.getEmailOverrideAddress()#");
return true;
}
return false;
#local.out#") />