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