[+] Python, zewn

Konfiguracja serwerów, usług, itp.
sq2wkj
Posty: 26
Rejestracja: 16 kwietnia 2010, 14:21

[+] Python, zewnętrzny serwer SMTP, niepoprawne uwierzytelnienie

Post autor: sq2wkj »

Witam.
Moim celem było stworzenie małego skryptu w Pythonie, służącego do wysyłania poczty, korzystającego z zewnętrznego serwera poczty wychodzącej SMTP. Zaznaczam, że w żaden sposób nie mam wpływu na konfigurację powyższego serwera, a więc jedynym wyjściem, aby z niego skorzystać jest tylko napisanie prawidłowego skryptu.
Podczas tworzenia sesji z serwerem SMTP otrzymuję komunikat:

Kod: Zaznacz cały

 5.7.0 Authentication failed...
Fragment skryptu zestawiającego połączenie z zewnętrznym serwerem SMTP:

Kod: Zaznacz cały

import smtplib

try:
    smtp = smtplib.SMTP(self._host,25)
    smtp.set_debuglevel(1)

    print smtp

    if self._smtp_uzytkownik != '':
    smtp.login(self._smtp_uzytkownik, self._smtp_haslo)

except Exception, e:
    raise Exception("Blad: " + self._host + ": " + str(e))

Kod: Zaznacz cały

debian:/var/www/python/# python smtp-mail.py
nazwa_zewnetrznego_serwera_smtp
nazwa_uzytkownika
haslo
domena_z_ktorej_wysylana_ma_byc_poczta
<smtplib.SMTP instance at 0xb7709c8c>
send: 'ehlo moj_host\r\n'
reply: '250-nazwa_zewnetrznego_serwera_smtp Hello chello089xxxxxxxxx [89.xxx.xxx.xxx], pleased to meet you\r\n'
reply: '250-ENHANCEDSTATUSCODES\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-8BITMIME\r\n'
reply: '250-SIZE\r\n'
reply: '250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN\r\n'
reply: '250-DELIVERBY\r\n'
reply: '250 HELP\r\n'
reply: retcode (250); Msg: nazwa_zewnetrznego_serwera_smtp Hello chello089xxxxxxxxx [89.xxx.xxx.xxx], pleased to meet you
ENHANCEDSTATUSCODES
PIPELINING
8BITMIME
SIZE
AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
DELIVERBY
HELP
send: 'AUTH CRAM-MD5\r\n'
reply: '334 PDM3OTY5ODYwMDMuMTY1NjgxNTJAbWFpbC51dHAuZWR1LnBsPg==\r\n'
reply: retcode (334); Msg: PDM3OTY5ODYwMDMuMTY1NjgxNTJAbWFpbC51dHAuZWR1LnBsPg==
send: 'c3Eyd2tqIDQ3NzEwYWYxZDRiYTk5MzNhNDk3YjcwMjkzY2JhYzk3\r\n'
reply: '535 5.7.0 authentication failed\r\n'
reply: retcode (535); Msg: 5.7.0 authentication failed
Wyjatek w RunOnce: Blad: nazwa_zewnetrznego_serwera_smtp: (535, '5.7.0 authentication failed')
Dla wyjaśnienia problemu podam informację, że ten sam skrypt dla serwera poczty wychodzącej SMTP WP (smtp.wp.pl) port 587 (wyżej 25) działa!

Kod: Zaznacz cały

debian:/var/www/python/# python smtp-mail.py
smtp.wp.pl
nazwa_uzytkownika
haslo
wp.pl
<smtplib.SMTP instance at 0xb7797b2c>
send: 'ehlo moj_host\r\n'
reply: '250-smtp.wp.pl\r\n'
reply: '250-PIPELINING\r\n'
reply: '250-AUTH=LOGIN PLAIN\r\n'
reply: '250-AUTH LOGIN PLAIN\r\n'
reply: '250-STARTTLS\r\n'
reply: '250-SIZE\r\n'
reply: '250-X-RCPTLIMIT 100\r\n'
reply: '250 8BITMIME\r\n'
reply: retcode (250); Msg: smtp.wp.pl
PIPELINING
AUTH=LOGIN PLAIN
AUTH LOGIN PLAIN
STARTTLS
SIZE
X-RCPTLIMIT 100
8BITMIME
send: 'AUTH PLAIN AHNxMndragBjb2RlNzM3Mw==\r\n'
reply: '235 go ahead\r\n'
reply: retcode (235); Msg: go ahead
send: 'mail FROM:<moj_adres@wp.pl> size=379\r\n'
reply: '250 ok\r\n'
reply: retcode (250); Msg: ok
send: 'rcpt TO:<adres_odbiorcy@gmail.com>\r\n'
reply: '250 ok\r\n'
reply: retcode (250); Msg: ok
send: 'data\r\n'
reply: '354 go ahead\r\n'
reply: retcode (354); Msg: go ahead
data: (354, 'go ahead')
Oczywiście, jeśli chodzi o parametry logowania do serwera SMTP to podaje je poprawnie, być może chodzi o kodowanie hasła, ale nie mam pomysłu już na to, proszę o pomoc.
Pozdrawiam

Dodane:
Witam.
Rozwiązane, do zamknięcia.

Kod: Zaznacz cały

esmtp_features
ODPOWIEDZ