Hoxe imos a aprender a usar a librería smtp (send mail transfer protocol) ou noutras palabras, imos enviar correo electrónico con un script en python, o código que adxunto é unha pequena porción dun script maligno que tiña feito fai un tempo.
O primeiro que temos que coñecer é como funciona o protocolo de envío de mail (SMTP) e que é MIME (Multipurpose Internet Mail Extensions). Están moi ben explicados na galipedia e penso que o importante é o que segue a continuación, así que aí vai primeiro o código e logo con explicacións.
#!/usr/bin/env python #por hacklego #para Hackliza #twitter:@hacklego import smtplib import mimetypes from email.MIMEText import MIMEText from email.Encoders import encode_base64 def enviarmail(user, password, body, subject, to): try: mensaxe = MIMEText(body) mensaxe['From']=user mensaxe['To']=to mensaxe['Subject']=subject mailServer = smtplib.SMTP('smtp.gmail.com', 587) mailServer.ehlo() mailServer.starttls() mailServer.ehlo() mailServer.login(user, password) mailServer.sendmail(user, to, mensaxe.as_string()) print 'Mensaxe enviado correctamente' mailServer.close() except: print 'Error ao enviar a mensaxe' while True: print 'Benvidxs' user = raw_input('Usuario: ') password = raw_input('Contrasinal: ') body = raw_input('Mensaxe: ') subject = raw_input('Asunto: ') to = raw_input('Para: ') enviarmail(user, password, body, subject, to)
#!/usr/bin/env python #por hacklego #para Hackliza #twitter:@hacklego #importamos as librerias smtp e mime import smtplib import mimetypes from email.MIMEText import MIMEText from email.Encoders import encode_base64 #defenimos a funcion "enviarmail" def enviarmail(user, password, body, subject, to): #Excepcion, un try, intentar que: try: #O uso do smtp pidenos que definamos un corpod e mensaxe, desde, hacia e asunto que nos simplificaremos en ususario (user) #destinatario (to) e asunto (subject) mensaxe = MIMEText(body) mensaxe['From']=user mensaxe['To']=to mensaxe['Subject']=subject #Agora definimos o noso servizo de envio de mail, neste caso gmail mailServer = smtplib.SMTP('smtp.gmail.com', 587) mailServer.ehlo() mailServer.starttls() mailServer.ehlo() mailServer.login(user, password) mailServer.sendmail(user, to, mensaxe.as_string()) #respostamos en caso de que se consiga enviar coa seguinte mensaxe print 'Mensaxe enviado correctamente' mailServer.close() #se o "try" falla chegara a excepcion que enviará mensaxe de error except: print 'Error ao enviar a mensaxe' #menu while True: print 'Benvidxs' user = raw_input('Usuario: ') password = raw_input('Contrasinal: ') body = raw_input('Mensaxe: ') subject = raw_input('Asunto: ') to = raw_input('Para: ') #cos datos recollidos lanzamos a funcion "enviarmail" enviarmail(user, password, body, subject, to)
Agardo gostásedes!
No hay comentarios:
Publicar un comentario