File "m.py", line 60, in echo_meage mail_content = text NameError: name 'text' is not defined
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton, InlineKeyboardButton
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from config import TOKEN
from aiogram.dispatcher.filters import Command, Text
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
button_hi = KeyboardButton('запросить домашнее задания')
button_h = KeyboardButton('создатель')
button_h2 = KeyboardButton('изменить дз')
button_h3 = KeyboardButton('зделать масовую отрпавку сообщений')
greet_kb = ReplyKeyboardMarkup()
greet = ReplyKeyboardMarkup()
greeta = ReplyKeyboardMarkup()
greet_kb.add(button_hi, button_h)
greet.add(button_h2)
greeta.add(button_h2,button_h3)
dd = "ааааа я не понимаю("
goodd = "шестиклашка по имени Влад"
d = ""
goos = "все гуд напишите /main чтоб начать пользиваться ботом"
goo = "а напомника свою почту)?"
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def process_start_command(message: types.Message):
await message.reply("привет! напиши свою GMAIL почту чтоб я мог отправлять домашнее задания или уведомления")
@dp.message_handler()
async def echo_message(msg: types.Message):
await bot.send_message(msg.from_user.id, goos)
mail = msg.text
f = open('bazemail.txt', 'a')
f.write(mail + "\n")
@dp.message_handler(commands=['main'])
async def process_start_command(message: types.Message):
await message.reply("Привет!", reply_markup=greet_kb)
mail = ""
async def askow_r_u(message: types.Message):введите сюда код
await bot.send_message(msg.from_user.id)
mail = msg.text
@dp.message_handler(Text(equals=["запросить домашнее задания"]))
async def echo_meage(msg: types.Message):
await bot.send_message(msg.from_user.id, goo)
global text
mail_content = text
#The mail addresses and password
sender_address = 'xxxx'
sender_pass = 'xxxxxx'
receiver_address = mail
#Setup the MIME
message = MIMEMultipart()
message['From'] = sender_address
message['To'] = receiver_address
message['Subject'] = 'home work' #The subject line
#The body and the attachments for the mail
message.attach(MIMEText(mail_content, 'plain'))
#Create SMTP session for sending the mail
session = smtplib.SMTP('smtp.gmail.com', 587) #use gmail with port
session.starttls() #enable security
session.login(sender_address, sender_pass) #login with mail_id and password
text = message.as_string()
session.sendmail(sender_address, receiver_address, text)
session.quit()
await bot.send_message(msg.from_user.id, "отправил")
@dp.message_handler(Text(equals=["создатель"]))
async def echo_eage(msg: types.Message):
await bot.send_message(msg.from_user.id, goodd)
@dp.message_handler(commands=['vladsecret'])
async def procrt_command(message: types.Message):
await message.reply("admin has been created", reply_markup=greet)
@dp.message_handler(Text(equals=["изменить дз"]))
async def echo_meage(msg: types.Message):
text = msg.text
if __name__ == '__main__':
executor.start_polling(dp)
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
global text
mail_content = text
Вы пытаетесь тут читать значение глобальной переменной text, которая ранее не была инициализирована.
Судя по коду, не очень понятно, что вы делаете и я не уверен, что вы понимаете, что вы делаете, поэтому тут трудно советовать, как этот код починить правильным образом.