отправка письма python
Есть функция которая вызывается, почему-то она зависает и не отправляет письмо, но и ошибок нет будто бы зависает либо на этапе подключения к серверу либо на этапе подключения к аккаунту. Не знаю честно говоря какая именно ошибка и как ее найти, поэтому прошу помощи здесь. код функции(некоторые вещи нужны для будущего функционала, поэтому сейчас не имеют смысла в коде, но есть)
def write_on_mail():
try:
emails = ["получатель1"]
# Создаем сообщение
msg = MIMEMultipart()
msg['From'] = "отправитель"
msg['To'] = "получатель"
#msg['To'] = ", ".join(emails)
msg['Subject'] = "заголовок"
# Добавляем текст сообщения
msg.attach(MIMEText("сообщение", 'plain'))
# Устанавливаем SMTP сервер и отправляем сообщение
with smtplib.SMTP('smtp.yandex.ru', 465) as smtp:
smtp.login("почта", "пароль") # Ваш адрес Gmail и пароль
smtp.send_message(msg)
except Exception as e:
print(f"На указанные почты не получилось написать\nОшибка - {e}")
Ответы (1 шт):
Стоило еще раз поискать информацию и я решил проблему, судя по всему проблема была либо в подключении к серверу(в рабочей версии подключение выглядит так - smtplib.SMTP('smtp.yandex.ru', 587, timeout=10)
) либо в отправке письма(отправка выглядит так - s.sendmail(msg['From'], sender, msg.as_string()
)
вот также мой рабочий код если кому-то нужно будет
sender = "Почта через которую отправлять"
password = "Пароль к ней"
msg = MIMEText('Текст сообщения', 'plain', 'utf-8')
msg['Subject'] = 'Заголовок сообщения'
msg['From'] = 'От кого'
msg['To'] = 'кому'
s = smtplib.SMTP('smtp.yandex.ru', 587, timeout=10)
try:
s.starttls()
s.login(sender, password)
# (от кого, кому, сообщение)
s.sendmail(msg['From'], sender, msg.as_string())
except Exception as e:
print(e)
finally:
s.quit()