@DitaDev

Что не так? Почему не работает бот?

Добавил в бота команду, при которой он отправляет письмо на почту. Самое главное, что в 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>&#1087;&#1086;&#1085;</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&amp;resource=himg&amp;disposition=inline&amp;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">&#1055;&#1088;&#1080;&#1074;&#1103;&#1079;&#1082;&#1072; &#1087;&#1086;&#1095;&#1090;&#1099; &#1082; 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">&#1050;&#1086;&#1076; &#1076;&#1083;&#1103; &#1087;&#1088;&#1080;&#1074;&#1103;&#1079;&#1082;&#1080; &#1085;&#1072;&#1093;&#1086;&#1076;&#1080;&#1090;&#1089;&#1103; &#1085;&#1080;&#1078;&#1077;!</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&amp;resource=himg&amp;disposition=inline&amp;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'Неверный код!')
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Рекомендую выделить отправку email в отдельную функцию и отладить её отдельно от бота на сервере. Потом добавлять в бота вызов этой функции и уже тогда если будут проблемы, разбираться со связкой бот+email.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы