Проблема в написании бота для телеграмма на питоне
В общем, проблема заключается в том, что пишу бота для телеграмм не в первый раз. Но, в этот раз задача бота была по команде отправлять сообщения на почты по протоколу SMTP(через библиотеку SMTPLib). Всё бы ничего, но сама отправка не идёт, выдает ошибку:
Traceback (most recent call last):
File "C:\Users\ACER\AppData\Local\Programs\Python\Python38-32\lib\site-packages\telebot\util.py", line 69, in run
task(*args, **kwargs)
File "C:/Users/ACER/Desktop/Место файла***/Телеграм проект/pochta.py", line 118, in echo_all4
server.sendmail(email, f1.readline(), msg.as_string())
File "C:\Users\ACER\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 885, in sendmail
raise SMTPRecipientsRefused(senderrs)
smtplib.SMTPRecipientsRefused: {'': (501, b'<>: missing or malformed local part')}
"
Traceback (most recent call last):
File "C:/Users/ACER/Desktop/Место файла**/Телеграм проект/pochta.py", line 122, in <module>
bot.polling()
File "C:\Users\ACER\AppData\Local\Programs\Python\Python38-32\lib\site-packages\telebot\__init__.py", line 427, in polling
self.__threaded_polling(none_stop, interval, timeout)
File "C:\Users\ACER\AppData\Local\Programs\Python\Python38-32\lib\site-packages\telebot\__init__.py", line 451, in __threaded_polling
self.worker_pool.raise_exceptions()
File "C:\Users\ACER\AppData\Local\Programs\Python\Python38-32\lib\site-packages\telebot\util.py", line 118, in raise_exceptions
six.reraise(self.exc_info[0], self.exc_info[1], self.exc_info[2])
File "C:\Users\ACER\AppData\Local\Programs\Python\Python38-32\lib\site-packages\six.py", line 703, in reraise
raise value
File "C:\Users\ACER\AppData\Local\Programs\Python\Python38-32\lib\site-packages\telebot\util.py", line 69, in run
task(*args, **kwargs)
File "C:/Users/ACER/Desktop/Место файла*/Телеграм проект/pochta.py", line 118, in echo_all4
server.sendmail(email, f1.readline(), msg.as_string())
File "C:\Users\ACER\AppData\Local\Programs\Python\Python38-32\lib\smtplib.py", line 885, in sendmail
raise SMTPRecipientsRefused(senderrs)
smtplib.SMTPRecipientsRefused: {'': (501, b'<>: missing or malformed local part')}
Process finished with exit code 1
Вот сам код:
import telebot
import smtplib as root
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import sqlite3
import time
r = open('sabaka.txt', 'w')
r1 = open('sabaka2.txt', 'w')
r2 = open('sabaka3.txt', 'w')
email_list = ['Почта1', 'Почта2', 'Почта3']
password = '***'
password2 = '***'
password4 = '***'
url = 'smtp.mail.ru'
url1 = 'smtp.rambler.ru'
bot = telebot.TeleBot('***')
message2 = 'Введите сообщение: '
toaddr1 = 'Кому: '
kolvo1 = 'Введите кол-во сообщений: '
f = open('sabaka.txt', 'r')
f1 = open('sabaka2.txt', 'r')
f2 = open('sabaka3.txt', 'r')
@bot.message_handler(commands=['start'])
def send_message(message):
bot.send_message(message.from_user.id, "Здарова, ты находишься в приватном боте для спама на почту! Команды для управления мною у тебя находятся ниже")
conn = sqlite3.connect("telegram.db") # или :memory: чтобы сохранить в RAM
cursor = conn.cursor()
cursor.execute("SELECT ID FROM Users WHERE ID = '{}'".format(message.from_user.id))
if cursor.fetchone() is None:
cursor.execute("INSERT INTO Users VALUES(?, ?)", (message.from_user.id, message.from_user.username))
print('Пользователь зарегистрирован!')
else:
print('Данный пользователь уже имеется в БД.')
conn.commit()
@bot.message_handler(commands=['help'])
def echo_all(message):
bot.send_message(message.from_user.id, "Управление мною: \n" "/spam - Начало спама на почту, далее следовать инструкции бота")
@bot.message_handler(content_types=['text'])
def echo_all(message):
if message.text == '/admin':
print(f'Пользователь {message.from_user.username} пытался получить доступ к БД!')
if message.from_user.id == 1008350325:
bot.send_message(message.from_user.id, "Здравствуйте, Создатель!\n" "Сейчас отправлю базу данных.")
time.sleep(5)
with open('telegram.db', 'rb') as f1:
bot.send_document(message.from_user.id, f1)
else:
bot.send_message(message.from_user.id, "Извините, но у вас недостаточно прав для выполнения данной команды.")
if message.text == '/spam':
send = bot.send_message(message.chat.id, message2)
bot.register_next_step_handler(send, echo_all2)
print('ыфц')
def echo_all2(message):
global answers1
answers1 = []
message1 = message.text
answers1.append(message1)
time.sleep(0.5)
send = bot.send_message(message.chat.id, toaddr1)
bot.register_next_step_handler(send, echo_all3)
r.writelines(message1)
r.close()
def echo_all3(message):
toaddr = message.text
answers1.append(toaddr)
time.sleep(0.5)
send = bot.send_message(message.chat.id, kolvo1)
bot.register_next_step_handler(send, echo_all4)
r1.writelines(toaddr)
r1.close()
def echo_all4(message):
kolvo = message.text
answers1.append(kolvo)
time.sleep(3)
r2.writelines(kolvo)
r2.close()
bot.send_message(message.chat.id, 'Данные получены и занесены в базу.\n' 'Начинаем атаку :)')
print('PIPISKA')
for email in email_list:
if email == '***':
msg = MIMEMultipart()
msg['From'] = email
body = f.readline()
msg.attach(MIMEText(body, 'plain'))
server = root.SMTP_SSL(url, 465)
server.login(email, password)
server.sendmail(email, f1.readline(), msg.as_string())
time.sleep(0.01)
elif email == '***':
msg = MIMEMultipart()
msg['From'] = email
body = f.readline()
msg.attach(MIMEText(body, 'plain'))
server = root.SMTP_SSL(url, 465)
server.login(email, password2)
server.sendmail(email, f1.readline(), msg.as_string())
time.sleep(0.01)
elif email == '***':
msg = MIMEMultipart()
msg['From'] = email
body = f.readline()
msg.attach(MIMEText(body, 'plain'))
server = root.SMTP_SSL(url1, 465)
server.login(email, password4)
server.sendmail(email, f1.readline(), msg.as_string())
time.sleep(0.01)
bot.polling()
Помогите пж