Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите со скриптом пожалуйста

макс максимов Ученик (58), открыт 1 неделю назад
# Пример использования:
file_path_post = 'post.txt' # Путь к файлу для первого текста
file_path_pass = 'pass.txt' # Путь к файлу для второго текста

text_post = input("Введите свой адресс почты outlook: ")
append_text_to_file(file_path_post, text_post)

text_pass = input("Введите пароль к почте: ")
append_text_to_file(file_path_pass, text_pass)
elif choice == '2':
user = input("Введите @username аккаунта: ")
tg_id = input("Введите Telegram ID: ")
namber = input("Введите номер телефона: ")


def read_email_addresses(filename):
with open(filename, 'r') as file:
return [line.strip() for line in file]


def read_passwords(filename):
with open(filename, 'r') as file:
return [line.strip() for line in file]


def read_random_message(filename):
with open(filename, 'r') as file:
messages = [line.strip() for line in file]
return random.choice(messages)


def read_subjects(filename):
with open(filename, 'r') as file:
return [line.strip() for line in file]


def send_email(email_address, password, recipient_email, subject, message_text):
try:
smtp_server = smtplib.SMTP(' smtp-mail.outlook.com ', 587)
smtp_server.starttls()
smtp_server.login(email_address, password)

msg = MIMEText(message_text)
msg['Subject'] = subject
msg['From'] = email_address
msg['To'] = recipient_email

smtp_server.sendmail(email_address, [recipient_email], msg.as _string())
print(f"Письмо успешно отправлено с адреса {email_address} на адрес {recipient_email}!")

except smtplib.SMTPAuthenticationError:
print(f"Ошибка аутентификации для адреса {email_address}. Пожалуйста, проверьте ваши учетные данные.")

finally:
smtp_server.quit()


# Чтение адресов из файла
email_addresses = read_email_addresses('post.txt')
passwords = read_passwords('pass.txt')
subjects = read_subjects('tema.txt')

print(f"{Fore.LIGHTRED_EX}Подключено {len(email_addresses)} почт.")

# Отправка писем на каждый адрес
for i, (email_address, password) in enumerate(zip(email_addresses, passwords)):
recipient_email = " tityla900@gmail.com "
subject = random.choice(subjects)
message_text = read_random_message('text.txt')
send_email(email_address, password, recipient_email, subject, message_text)


на почту приходит письмо с текстом Здравствуйте!, за место того, что указан в файле
1 ответ
olimchik Мастер (1070) 1 неделю назад
исправим его форматирование и ошибки, а также добавим кодировку для правильной работы с кириллицей


 import smtplib 
import random
from email.mime.text import MIMEText
from colorama import Fore

def append_text_to_file(file_path, text):
with open(file_path, 'a', encoding='utf-8') as file:
file.write(text + '\n')

def read_email_addresses(filename):
with open(filename, 'r', encoding='utf-8') as file:
return [line.strip() for line in file]

def read_passwords(filename):
with open(filename, 'r', encoding='utf-8') as file:
return [line.strip() for line in file]

def read_random_message(filename):
with open(filename, 'r', encoding='utf-8') as file:
messages = [line.strip() for line in file]
return random.choice(messages)

def read_subjects(filename):
with open(filename, 'r', encoding='utf-8') as file:
return [line.strip() for line in file]

def send_email(email_address, password, recipient_email, subject, message_text):
try:
smtp_server = smtplib.SMTP('smtp-mail.outlook.com', 587)
smtp_server.starttls()
smtp_server.login(email_address, password)

msg = MIMEText(message_text, 'plain', 'utf-8')
msg['Subject'] = subject
msg['From'] = email_address
msg['To'] = recipient_email

smtp_server.sendmail(email_address, [recipient_email], msg.as_string())
print(f"Письмо успешно отправлено с адреса {email_address} на адрес {recipient_email}!")

except smtplib.SMTPAuthenticationError:
print(f"Ошибка аутентификации для адреса {email_address}. Пожалуйста, проверьте ваши учетные данные.")

finally:
smtp_server.quit()

if __name__ == '__main__':
choice = input("Введите '1' для ввода почты и пароля или '2' для ввода данных Telegram: ")
if choice == '1':
file_path_post = 'post.txt' # Путь к файлу для первого текста
file_path_pass = 'pass.txt' # Путь к файлу для второго текста

text_post = input("Введите свой адрес почты outlook: ")
append_text_to_file(file_path_post, text_post)

text_pass = input("Введите пароль к почте: ")
append_text_to_file(file_path_pass, text_pass)
elif choice == '2':
user = input("Введите @username аккаунта: ")
tg_id = input("Введите Telegram ID: ")
number = input("Введите номер телефона: ")

# Чтение адресов из файла
email_addresses = read_email_addresses('post.txt')
passwords = read_passwords('pass.txt')
subjects = read_subjects('tema.txt')

print(f"{Fore.LIGHTRED_EX}Подключено {len(email_addresses)} почт.")

# Отправка писем на каждый адрес
for i, (email_address, password) in enumerate(zip(email_addresses, passwords)):
recipient_email = "tityla900@gmail.com"
subject = random.choice(subjects)
message_text = read_random_message('text.txt')
send_email(email_address, password, recipient_email, subject, message_text)
Основные изменения:

1. Добавлены отступы для блоков кода внутри функций и условий.
2. Указана кодировка utf-8 при чтении и записи файлов для корректной обработки кириллических символов.
3. Добавлена библиотека colorama для работы с цветным выводом текста.

Теперь, письма должны отправляться с правильным текстом из файла. Убедитесь, что файлы post.txt, pass.txt, tema.txt и text.txt сохранены в кодировке UTF-8.
Похожие вопросы