from smtplib import SMTPException from django.views.generic.edit import CreateView from django.urls import reverse from django.http import HttpResponse from django.core.mail import send_mail, BadHeaderError from django.template.loader import get_template from .models import Employee from .forms import EmployeeForm from .settings import MAILS, EVA_MAIL def success(request): return HttpResponse("gut gemacht!") def send_mail_to_department(department): 'send a mail to the given department with the nececcary notifications' print(f'send mail to department {department}...') context = {} try: mail_template = get_template(f'evapp/{department}_mail.txt') send_mail( 'EVA: Neuzugang', mail_template.render(context), EVA_MAIL, [MAILS[department]['MAIL']], fail_silently=False) except BadHeaderError: # modell.delete() return HttpResponse('Invalid header found. Data not saved!') except SMTPException: # modell.delete() return HttpResponse('Error in sending mails (propably wrong adress?). Data not saved!') class EvaFormView(CreateView): model = Employee form_class = EmployeeForm def get_success_url(self): return reverse('success') def form_valid(self, form): for dep in MAILS: send_mail_to_department(dep) return super().form_valid(form)