def send_email(data): """ This is a helper function for sending emails based on the settings provided in the settings.py file. """ if not settings.URL: abort(500,'Email provider URL is not set') if not settings.API_KEY: abort(500,'Email provider API_KEY is not set') status = False if settings.EMAIL_PROVIDER == 'MAILGUN': status = send_email_using_mailgun(data, settings.URL, settings.API_KEY) if status != 'success' and settings.AUTO_SWITCH_EMAIL_PROVIDER: #check to auto switch email provider return send_email_using_mandrill(data, settings.ALT_URL, settings.ALT_API_KEY) elif settings.EMAIL_PROVIDER == 'MANDRILL': status = send_email_using_mandrill(data, settings.URL, settings.API_KEY) if status != 'success' and settings.AUTO_SWITCH_EMAIL_PROVIDER: #check to auto switch email provider return send_email_using_mailgun(data, settings.ALT_URL, settings.ALT_API_KEY) if status == 'success': #Storing emails sent in the database email = Email(to_name=data['to_name'], to_email=data['to'], from_email=data['from'], from_name=data['from_name'], subject=data['subject'], body=data['body']) if 'send_at' in data and data['send_at']: email.send_at = data['send_at'] db_session.add(email) db_session.commit() return status