2012-02-09 11 views
13

To jest mój normalny kod w moim VPS hosting, które zapewniają Python 2.4SMTP AUTH rozszerzenie nie jest obsługiwany przez serwer w Pythonie 2.4

def mail(receiver,Message): 
    import smtplib 
    try: 
     s=smtplib.SMTP() 
     s.connect("smtp.gmail.com",465) 
     s.login("[email protected]", "password") 
     s.sendmail("[email protected]", receiver, Message) 
    except Exception,R: 
      return R 

ale niestety zwrócić tę wiadomość! : SMTP AUTH extension not supported by server.

w moim komputerze, który mam zainstalować Pythona 2.7 znalazłem rozwiązanie i to bardzo dobra praca tutaj jest ten kod:

def mail(T,M): 
    import smtplib 
    try: 
     s=smtplib.SMTP_SSL() 
     s.connect("smtp.gmail.com",465) 
     s.login("[email protected]","your_password") 
     s.sendmail("[email protected]", T, M) 
    except Exception,R: 
      print R 

Ale w VPS, który zainstalowany Python 2.4 nie ma SMTP_SSL() i zwróć tę wiadomość: 'module' object has no attribute 'SMTP_SSL'

Próbowałem również zaktualizować mojego pytona w VPS, ale to, co się stało, to Damage, cały python, który oznacza, że ​​python nie działa.

Odpowiedz

15

Chłopaki dzięki znalazłem rozwiązanie i to jest rozwiązanie =)

def mail(receiver,Message): 
    import smtplib 
    try: 
     s=smtplib.SMTP() 
     s.connect("smtp.gmail.com",465) 
     s.ehlo() 
     s.starttls() 
     s.ehlo() 
     s.login("[email protected]", "password") 
     s.sendmail("[email protected]", receiver, Message) 
    except Exception,R: 
      return R 
+1

ty nie można uruchomić '' ehlo'' lub '' starttls'' przed '' connection''. Poza tym nie ma sensu, podnosi wyjątek ('' SMTPServerDisconnected''). – emyller

+2

Nie musisz wykonywać pierwszej rozmowy s.ehlo(). s.starttls() zadzwoni do ciebie. Potwierdziłem to w 2.7, dokumenty 2.4 brzmią, jakby zachowywały się w ten sam sposób w tej wersji. – Ian

+0

Warto wyraźnie powiedzieć, że to podwójna ehlo() wydaje się działać. –

0

Czy SMTP.starttls() jest dostępny? Można również zrobić np

def mail(receiver,Message): 
    import smtplib 
    try: 
     s=smtplib.SMTP() 
     s.connect("smtp.gmail.com",587) 
     s.starttls() 
     s.login("[email protected]", "password") 
     s.sendmail("[email protected]", receiver, Message) 
    except Exception,R: 
      return R 
+1

dokładny wynik^_^'SMTP AUTH rozszerzenie nie jest obsługiwana przez server' – Hamoudaq

Powiązane problemy