Sergomen
@Sergomen
Просто делай добро и оно вернётся

Как правильно использовать прокси с smtplib и ipv6?

Пытаюсь зайти под своим аккаунтом в Outlook через прокси тора, но получаю
ошибку
OSError: PySocks doesn't support IPv6: ('2620:1ec:c11::212', 587, 0, 0)
о том что PySocks не поддерживает ipv6(я так понял что smtplib хочет подключится по ipv6 адресу smtp.live.com).

Есть ли аналог PySocks но с поддержкой ipv6, либо можно ли как-то сделать чтобы smtplib не использовала ipv6? Или может что-то другое сделать?
мой код
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import socks, socket
import smtplib 
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from bs4 import BeautifulSoup as bs

email    = "почта"
password = "пароль"
FROM = email 
TO   = "кому"
subject = "test"
msg = MIMEMultipart("alternative")
msg["From"] = FROM
msg["To"] = TO
msg["Subject"] = subject
html = """
Тестовое <b>сообщение</b>.

"""
text = bs(html, "html.parser").text

text_part = MIMEText(text, "plain")
html_part = MIMEText(html, "html")
msg.attach(text_part)
msg.attach(html_part)
def send_mail(email, password, FROM, TO, msg):
    #вот тут подключась к прокси тора
    socks.set_default_proxy(socks.SOCKS5, '127.0.0.1', 9050)
    socket.socket = socks.socksocket
    
    server = smtplib.SMTP("smtp.live.com", 587)
    server.starttls()
    server.login(email, password)
    server.sendmail(FROM, TO, msg.as_string())
    print('norm')
    server.quit()

send_mail(email, password, FROM, TO, msg)

Пробовал server = smtplib.SMTP("204.79.197.212", 587)
но получаю ошибку
socks.GeneralProxyError: Socket error: 0x01: General SOCKS server failure
  • Вопрос задан
  • 467 просмотров
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
Комментировать
Sergomen
@Sergomen Автор вопроса
Просто делай добро и оно вернётся
Оказывается все норм работает с smtp.office365.com
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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