The best practice for this scenario is to disable access to Blackbaud Communications Services in the non-production environment. We suggest connecting to Blackbaud Communications Services from ONLY the production database. There are a few strategies that can accomplish this:
Beginning in version 4.0, Service Pack 3; there are a pair of web.config entries that can be utilized to block the sending of either all email jobs, or of BBIS scheduled email jobs. These settings keys are: <add key="BlockAllEmails" value="False" /> and <add key="BlockScheduledEmails" value="False" />. More information can be found in the Service Pack 3 Release notes: https://www.blackbaud.com/files/support/downloads/bbec/crm40sp3rn.html
- In the non-production database, remove the hostname and/or service credentials entered in BBIS > Administration > Sites & Settings > Web Services > Blackbaud Services. This will prevent access to the email servers.
- Have your IT team configure firewall rules to block access to Email Server IPs from non-production environments.
- Run script 1PRODUCTION_PreBackup on the Production database to disable email job processing
- Create a backup of the Production database
- Run script 2PRODUCTION_PostBackup on the Production environment to enable all email jobs
- Restore the backup from step2 to the non-production environment
- Run script 3STAGING_PostBackup against the non-production environment to disable scheduled emails and clear queued email jobs. It then re-enables the email processes.
- Run script 4STAGING_PostRefresh on the staging environment. This will provide a list of all email jobs in staging environment for review.