# Sending Django Emails
# Send Mail Imports
Take what you need 🎉 💯
from django.conf import settings
from django.core.mail import EmailMultiAlternatives, get_connection, send_mail
from django.template.loader import get_template
from django.template import Context
from django.contrib.auth.models import User
from .models import *
import requests
from django.core.mail.message import EmailMessage
# Dynamic SMTP Settings
Send email with dynamic settings and connection
def sendTestingEmail(host, port, username, password, use_tls, from_email, to_email):
subject = 'The Subject of the mail'
body = """
Hello,
Content of the mail
Regards,
"""
connection = get_connection(host=host, port=port, username=username, password=password, use_tls=use_tls)
EmailMessage(subject, body, from_email, [to_email], connection=connection).send()
connection.close()
# Send Email with EmailMultiAlternatives
If you want to send HTML emails
def sendAnEmail(to_email):
from_email = settings.EMAIL_HOST_USER
subject = 'Subject of your mail'
text_content = """
Hello,
Content of the mail
Regards,
"""
html_c = get_template('email/email-template.html')
d = {}
d['variable1'] = 'Variable1'
html_content = html_c.render(d)
msg = EmailMultiAlternatives(subject, text_content, from_email, [to_email])
msg.attach_alternative(html_content, 'text/html')
msg.send()
# Send an email with an attachment
If you need to attach a document to the email.
def emailMinutesMeeting(firstName, message, to_email, filename, pdf_location):
from_email = settings.EMAIL_HOST_USER
subject = 'Subject of the email'
text_content = """
Dear {},
{}
regards,
""". format(firstName, message)
html_c = get_template('email/email-template.html')
d = {}
d['firstName'] = firstName
d['message'] = message
html_content = html_c.render(d)
msg = EmailMultiAlternatives(subject, text_content, from_email, [to_email])
msg.attach_alternative(html_content, 'text/html')
file_data = open(pdf_location, 'rb')
msg.attach(filename, file_data.read(), "application/pdf")
file_data.close()
msg.send()