Я сейчас работаю над проектом, который требует возможности отправлять электронные письма. Моя проблема в том, что всякий раз, когда я помещаю код электронной почты в функцию, он перестает работать.
Вот функция (за исключением фактической информации электронной почты и пароля, конечно):
import smtplib, ssl
port = 465
smtp_server = "smtp.gmail.com"
sender_email = "my_email@gmail.com"
receiver_email = "their_email@gmail.com"
password = "password"
message = """\
Subject: Subject
This is the email body"""
def send(msg):
context = ssl.create_default_context()
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, msg)
print("SENT")
if __name__ == "__main__":
send(message)
это даже не дает мне ошибок, просто не работает. Однако, если я делаю это так, все работает нормально:
import smtplib, ssl
port = 465
smtp_server = "smtp.gmail.com"
sender_email = "my_email@gmail.com"
receiver_email = "their_email@gmail.com"
password = "password"
message = """\
Subject: Subject
This is the email body"""
context = ssl.create_default_context()
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
print("SENT")
Есть мысли о том, почему это происходит?