from
jinja2
import
Template
import
smtplib
from
email.mime.text
import
MIMEText
from
email.mime.multipart
import
MIMEMultipart
with
open
(
"template.html"
,
"r"
) as
file
:
template_str
=
file
.read()
jinja_template
=
Template(template_str)
smtp_server
=
"smtp.server.com"
smtp_port
=
587
sender_email
=
"sender@email.com"
sender_password
=
"password"
server
=
smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(sender_email, sender_password)
people_data
=
[
{
"name"
:
"John Doe"
,
"email"
:
"john@example.com"
},
{
"name"
:
"Jane Smith"
,
"email"
:
"jane@example.com"
},
{
"name"
:
"Bob Johnson"
,
"email"
:
"bob@example.com"
},
]
for
person
in
people_data:
email_data
=
{
"subject"
:
"Greetings from Jinja Email"
,
"greeting"
: f
"Hello {person['name']}!"
,
"message"
:
"This is a sample email generated using Jinja2."
,
"sender_name"
:
"GFG"
,
}
email_content
=
jinja_template.render(email_data)
msg
=
MIMEMultipart()
msg[
"From"
]
=
sender_email
msg[
"To"
]
=
person[
"email"
]
msg[
"Subject"
]
=
email_data[
"subject"
]
msg.attach(MIMEText(email_content,
"html"
))
print
(f
"Sending email to {person['email']}:\n{email_content}\n\n"
)
server.sendmail(sender_email, person[
"email"
], msg.as_string())
server.quit()