В Telethon есть метод forward_messages, который позволяет пересылать сообщения так, чтобы было видно, от кого они пришли. Основной синтаксис таков:
await client.forward_messages(entity, messages, from_peer)
- entity - куда вы хотите переслать сообщение (например, ID чата или группы)
- messages - сообщения, которые вы хотите переслать (например, ID сообщения)
- from_peer - откуда пересылать сообщение (необязательный параметр)
Ваш пример уже содержит вызов этого метода, но кажется, что forward_to является списком. Попробуйте перебрать каждый чат в списке и переслать сообщение отдельно:
async def handler(event: NewMessage.Event):
phone = get_session_name(event.client)
with DB() as db:
autoresponder_message = db.get_autoresponder_text(phone)
try:
await event.reply(autoresponder_message)
for chat in forward_to:
print(chat)
await event.client.forward_messages(chat, event.message)
except Exception as e:
logger.info(f"Ошибка при автоответчике: {e}")
logger.info(f"Аккаунт {phone} получил сообщение в лс")
Обратите внимание, что я изменил event.client.forward_messages(forward_to, event.message) на await event.client.forward_messages(chat, event.message), так как forward_messages должен быть вызван для каждого чата отдельно. Кроме того, я добавил {e} к строке логирования ошибки, чтобы было видно детали ошибки.