Добавил в бота команду, при которой он отправляет письмо на почту. Самое главное, что в PyCharm всё работает исправно, а на сервере нет, ты пишешь команду, бот отвечает, но не то что не отправляет письмо, но и попросту умирает, не работает бот потом.
Вот та самая добавленная функция:
class Start(StatesGroup):
start_code = State()
@dp.message_handler(commands=['did'], state=None)
async def start_message(message: types.Message):
tgid = message.from_user.id
if accounts.count_documents({'tgid': int(tgid)}) == 0:
await bot.send_message(message.from_user.id, text=f'Для привязки почты к аккаунту, привяжите сначала аккаунт к Telegram профилю!', parse_mode=types.ParseMode.HTML)
return
mail = message.get_args()
if mail == "":
await bot.send_message(message.from_user.id, text=f'Введите: /did ваша действительная почта !', parse_mode=types.ParseMode.HTML)
return
if accounts.count_documents({'email': mail}):
await bot.send_message(message.from_user.id, text=f'Эта почта уже используется! Вы не можете привязать ей!', parse_mode=types.ParseMode.HTML)
else:
code_data = accounts.find_one({'tgid': tgid})
if code_data:
dandlecode = code_data["CoC"]
await bot.send_message(message.from_user.id, text=f'Код подтверждения отправлен на почту! Введите его!', parse_mode=types.ParseMode.HTML)
await Start.start_code.set()
accounts.update_one({'tgid': int(tgid)}, {'$set': {'memail': mail}})
server = smtplib.SMTP('smtp.mail.ru:25')
server.starttls()
msg = MIMEMultipart()
msg["Subject"] = f"Привязка DandleID [{dandlecode}]"
htmlf = """
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" lang="en">
<head>
<title>пон</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<!--[if mso]><xml></xml><![endif]--><style>
*{box-sizing:border-box}body{margin:0;padding:0}a[x-apple-data-detectors]{color:inherit!important;text-decoration:inherit!important}#MessageViewBody a{color:inherit;text-decoration:none}p{line-height:inherit}.desktop_hide,.desktop_hide table{mso-hide:all;display:none;max-height:0;overflow:hidden}@media (max-width:620px){.image_block img.big,.row-content{width:100%!important}.mobile_hide{display:none}.stack .column{width:100%;display:block}.mobile_hide{min-height:0;max-height:0;max-width:0;overflow:hidden;font-size:0}.desktop_hide,.desktop_hide table{display:table!important;max-height:none!important}.row-1 .column-1 .block-3.heading_block h1{font-size:17px!important}.row-1 .column-1 .block-2.heading_block h1{font-size:21px!important}}
</style>
</head>
<body style="background-color:#fff;margin:0;padding:0;-webkit-text-size-adjust:none;text-size-adjust:none">
<table class="nl-container" width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation" style="mso-table-lspace:0;mso-table-rspace:0;background-color:#fff"><tbody><tr><td><table class="row row-1" align="center" width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation" style="mso-table-lspace:0;mso-table-rspace:0"><tbody><tr><td><table class="row-content stack" align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="mso-table-lspace:0;mso-table-rspace:0;border-radius:0;color:#000;width:600px" width="600">
<tbody><tr><td class="column column-1" width="100%" style="mso-table-lspace:0;mso-table-rspace:0;font-weight:400;text-align:left;vertical-align:top;padding-top:5px;padding-bottom:5px;border-top:0;border-right:0;border-bottom:0;border-left:0">
<table class="image_block block-1" width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation" style="mso-table-lspace:0;mso-table-rspace:0"><tr><td class="pad" style="width:100%;padding-right:0;padding-left:0"><div class="alignment" align="center" style="line-height:10px"><img class="big" src="https://img.hiteml.com/en/v5/user-files?userId=5548689&resource=himg&disposition=inline&name=6y5r68suuqmpk6znr3gfim3d4yff8z9fn19f8y85ida3tjt63wmxdanew9aizco7noxest5y53c8se" style="display:block;height:auto;border:0;width:600px;max-width:100%" width="600"></div></td></tr></table>
<table class="heading_block block-2" width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation" style="mso-table-lspace:0;mso-table-rspace:0"><tr><td class="pad" style="padding-top:55px;text-align:center;width:100%"><h1 style="margin:0;color:#555;direction:ltr;font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:26px;font-weight:700;letter-spacing:normal;line-height:120%;text-align:center;margin-top:0;margin-bottom:0"><span class="tinyMce-placeholder">Привязка почты к DandleID</span></h1></td></tr></table>
<table class="heading_block block-3" width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation" style="mso-table-lspace:0;mso-table-rspace:0"><tr><td class="pad" style="text-align:center;width:100%"><h1 style="margin:0;color:#555;direction:ltr;font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:20px;font-weight:700;letter-spacing:normal;line-height:120%;text-align:center;margin-top:0;margin-bottom:0"><span class="tinyMce-placeholder">Код для привязки находится ниже!</span></h1></td></tr></table>
<table class="heading_block block-4" width="100%" border="0" cellpadding="30" cellspacing="0" role="presentation" style="mso-table-lspace:0;mso-table-rspace:0"><tr><td class="pad"><h1 style="margin:0;color:#555;direction:ltr;font-family:Arial,Helvetica Neue,Helvetica,sans-serif;font-size:30px;font-weight:700;letter-spacing:normal;line-height:120%;text-align:center;margin-top:0;margin-bottom:0"><span class="tinyMce-placeholder">"""f"{dandlecode}""""</span></h1></td></tr></table>
<table class="image_block block-5" width="100%" border="0" cellpadding="0" cellspacing="0" role="presentation" style="mso-table-lspace:0;mso-table-rspace:0"><tr><td class="pad" style="width:100%;padding-right:0;padding-left:0"><div class="alignment" align="center" style="line-height:10px"><img class="big" src="https://img.hiteml.com/en/v5/user-files?userId=5548689&resource=himg&disposition=inline&name=6x7wgqpp4nqqmyznr3gfim3d4yff8z9fn19f8y84orohrirwutpiwm4xqoahw7h58trseycnwr5cks" style="display:block;height:auto;border:0;width:600px;max-width:100%" width="600"></div></td></tr></table>
</td></tr></tbody>
</table></td></tr></tbody></table></td></tr></tbody></table>
"""
msg.attach(MIMEText(htmlf, 'html'))
server.login('не покажу', 'не покажу')
server.sendmail('не покажу', mail, msg.as_string())
server.quit()
@dp.message_handler(state=Start.start_code)
async def nscode(message: types.Message, state: FSMContext):
tgid = message.from_user.id
cod = message.text
code= random.randrange(100000, 999999)
code_data = accounts.find_one({'tgid': tgid})
if code_data:
dandlecode = code_data["CoC"]
memail = code_data["memail"]
if cod == 'Отмена':
accounts.update_one({'tgid': int(tgid)}, {'$set': {'email': ""}})
await state.finish()
accounts.update_one({'tgid': int(tgid)}, {'$set': {'CoC': int(code)}})
await bot.send_message(message.from_user.id, text=f'Вы успешно отменили привязку!')
else:
if int(cod) == dandlecode:
await state.finish()
accounts.update_one({'tgid': int(tgid)}, {'$set': {'email': memail}})
accounts.update_one({'tgid': int(tgid)}, {'$set': {'memail': ""}})
await bot.send_message(message.from_user.id, text=f'Почта успешно привязана к вашему аккаунту DandleBrawl!')
else:
accounts.update_one({'tgid': int(tgid)}, {'$set': {'email': ""}})
await state.finish()
accounts.update_one({'tgid': int(tgid)}, {'$set': {'CoC': int(code)}})
await bot.send_message(message.from_user.id, text=f'Неверный код!')