{"id":244,"date":"2020-11-20T21:27:38","date_gmt":"2020-11-20T20:27:38","guid":{"rendered":"https:\/\/www.pythonparatodo.com\/?p=244"},"modified":"2020-11-20T21:36:17","modified_gmt":"2020-11-20T20:36:17","slug":"envio-de-emails-con-smtplib","status":"publish","type":"post","link":"https:\/\/www.pythonparatodo.com\/?p=244","title":{"rendered":"Envio de emails con smtplib"},"content":{"rendered":"\n<p>Python dispone de un m\u00f3dulo llamado <strong>smtplib<\/strong>, que facilita el env\u00edo de correos.<\/p>\n\n\n\n<p>Para poder enviar uno, primero debemos de importar el m\u00f3dulo con la ayuda de import.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">import smtplib<\/code><\/pre>\n\n\n\n<p>Lo siguiente que debemos hacer es crear un objeto nuevo instanciando el m\u00e9todo <strong>SMTP <\/strong>para gestionar la conexi\u00f3n y env\u00edo del correo. El m\u00e9todo <strong>smtp()<\/strong> admite varios par\u00e1metros, los mas importantes son el nombre del servidor smtp y el puerto de conexi\u00f3n.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">correo = smtplib.smtp('Nombre_servidor_smtp' , puerto)<\/code><\/pre>\n\n\n\n<p>Tras esto usamos el m\u00e9todo <strong>login()<\/strong> para validarnos contra el servidor y poder enviar el mensaje. Este m\u00e9todo acepta como par\u00e1metros el usuario y la contrase\u00f1a que se usan para el env\u00edo de correos.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">correo.login('Nombre_usuario','Contrase\u00f1a')<\/code><\/pre>\n\n\n\n<p>Ya podemos componer el mensaje que debe contar al menos de una l\u00ednea con el remitente del mensaje que comience con &#8216;From:&#8217; , seguido del nombre del remitente y de retorno de carro y nueva l\u00ednea, otra l\u00ednea que contenga el asunto y que comience con &#8216;Subject:&#8217; seguido del texto del asunto y de dos retorno de carro y nueva l\u00ednea y posteriormente el contenido del cuerpo del mensaje.<\/p>\n\n\n\n<p>Tras esto podemos enviar el correo haciendo uso del m\u00e9todo <strong>sendmail() <\/strong>al que pasaremos como m\u00ednimo los par\u00e1metros del remitente, del destinatario y del mensaje. El destinatario tambi\u00e9n puede ser una lista de strings, si necesitamos enviar el correo a varios destinatarios.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">resultado = correo.sendmail('Direcci\u00f3n_correo_remitente','Direcci\u00f3n_correo_destinatario','Mensaje')<\/code><\/pre>\n\n\n\n<p>Este m\u00e9todo devuelve un diccionario, vac\u00edo si no se ha producido ning\u00fan error de envio y en caso de error contendr\u00e1 las direcciones de email y el error.<\/p>\n\n\n\n<p>Tras el env\u00edo debemos de desconectarnos del servidor usando el m\u00e9todo <strong>quit()<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">correo.quit()<\/code><\/pre>\n\n\n\n<p>Veamos un ejemplo de todo esto, recuerda que para que te funcione debes de configurar tus propios datos y contrase\u00f1as ;-).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">import smtplib\n\nsFrom = 'remitente@midominio.com'\nsPassword = 'MiPassword'\nsTo = 'destinatario@midominio.com'\nsSMTPServer = 'smtp.midominio.com'\nnPuerto = 25\n\nsAsunto = 'Hola mundo'\nsCuerpo = '''Cuerpo del mensaje.\nSaludos\nYo mismo'''\n\nmsg = (\"From: %s\\r\\n\" %sFrom)\nmsg = msg + ('Subject: %s\\r\\n\\r\\n' %sAsunto)\nmsg = msg + sCuerpo\n\ncorreo = smtplib.SMTP(sSMTPServer,nPuerto)\ncorreo.login(sFrom,sPassword)\nresultado = correo.sendmail(sFrom,sTo,msg)\nprint(resultado)\ncorreo.quit()<\/code><\/pre>\n\n\n\n<p>Si te ha gustado o te ha sido de utilidad, por favor, deja un comentario en la parte de abajo.<\/p>\n\n\n\n<p>Gracias.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Python dispone de un m\u00f3dulo llamado smtplib, que facilita el env\u00edo de correos. Para poder enviar uno, primero debemos de &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[113,114,6,112],"class_list":["post-244","post","type-post","status-publish","format-standard","hentry","category-python","tag-correo","tag-email","tag-python3","tag-smtplib"],"_links":{"self":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=244"}],"version-history":[{"count":3,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/244\/revisions"}],"predecessor-version":[{"id":247,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/244\/revisions\/247"}],"wp:attachment":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}