Как отправить emal на почту через yandex на Python?
Я пишу бота на aiogram
. Он должен уметь отправлять сообщение на почту через yandex
. Для этот использую aiosmtplib
. Вот код для хэндлера:
@other_router.message(ContactMe.time)
async def cmd_contact_me_4(message: Message, bot: Bot, state: FSMContext):
await state.update_data(time=message.text)
await message.answer(ContactMeText.val_success, reply_markup=reply_menu_keyboard)
data = await state.get_data()
await state.clear()
load_dotenv()
text = await ContactMeText.form_request(*data.values())
await bot.send_message(os.getenv('ADMIN_ID'), text)
await send_mail(os.getenv('MAIL'), text)
И код для утилиты отправки сообщения:
async def send_mail(to: str, text: str):
load_dotenv()
login = os.getenv('YAMAIL_LOGIN')
password = os.getenv('YAMAIL_PASSWORD')
email = MIMEText(text, 'plain', 'utf-8')
email['Subject'] = Header('Поступил запрос на обратную связь!', 'utf-8')
email['From'] = login
email['To'] = to
con = aiosmtplib.SMTP(hostname='smtp.yandex.ru', port=465, timeout=10, use_tls=True)
await con.connect()
await con.login(login, password)
await con.sendmail(email['From'], to, email.as_string())
await con.quit()
Тем не менее, когда запускаю код, возникает такая ошибка:
File "/Users/polina/Desktop/Kineziolog/.venv/lib/python3.12/site-packages/aiosmtplib/smtp.py", line 425, in connect
response = await self._create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/polina/Desktop/Kineziolog/.venv/lib/python3.12/site-packages/aiosmtplib/smtp.py", line 485, in _create_connection
raise SMTPConnectError(
aiosmtplib.errors.SMTPConnectError: Error connecting to smtp.yandex.ru on port 465: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1000)
Никогда раньше не пользовался этой библиотекой (как и обычной smtplib
), поэтому без понятия, что могло пойти не так.