[PT] – Como enviar emails autenticados e TLS de um site (Python / Php)

Como enviar emails autenticados e TLS de um site (Python / Php)

Enviar e-mail de um site por meio de um relay autenticado

Neste tutorial, explicamos como construir um script em python para poder enviar e-mails de sites.

Os e-mails são enviados através de um retransmissor do Corpmail, Outlook ou Gmail, e você deve especificar a conta de e-mail e a senha que será usada para autenticar o revezamento. Essa autenticação é conhecida como SASL, que é uma estrutura de autenticação para poder enviar e-mails no nome de uma determinada conta de e-mail. Por sua vez, garantimos que o e-mail seja criptografado com o protocolo TLS para garantir a privacidade do e-mail.

Como montar o script Python

O roteiro que vamos criar é curto e fácil de entender. Este script é semelhante para todos os domínios, que são o domínio de corpmail, gmail e outlook. A única diferença que existe é o servidor.

A parte do código em que diz Código para cada provedor de e-mail, é aí que temos que adicionar essas três linhas específicas de cada domínio.

Na seção msg [‘To’] podemos definir qualquer endereço de email para o qual queremos enviar a mensagem.

#!/usr/bin/python

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib

msg = MIMEMultipart()
message = "Prueba enviar mensaje"
-------------------------------------------
*Código para cada provedor de correo*
-------------------------------------------
msg['To'] = "********"
msg['Subject'] = "Prueba"
msg.attach(MIMEText(message, 'plain'))
server.starttls()
server.login(msg['From'], password)
server.sendmail(msg['From'], msg['To'], msg.as_string())
server.quit()
print("successfull sent email to %s:" %(msg['To']))
Correio do corpmail

No e-mail do corpmail, com o domínio .planisys.com, o servidor que temos que definir é o mail.planisys.net com a porta 587. Na linha seguinte, definimos o correio eletrônico do qual as mensagens serão enviadas. Em seguida, introduzimos a senha deste e-mail. Desta forma, armaremos a parte de enviar mensagens com o domínio @ planisys.com

#CORPMAIL
server = smtplib.SMTP('mail.planisys.net: 587')
msg['From'] = "******@planisys.com"
password = "*****"
Correio de Outlook

Para o e-mail do Outlook, seguimos a mesma receita que para o correio de corpmail, apenas alterando o servidor.

#OUTLOOK
server = smtplib.SMTP('smtp.live.com: 587')
msg['From'] = "********@outlook.com"
password = "**********"
Correio do gmail

Os e-mails do Gmail seguem a mesma estrutura que os outros na parte do script, mas têm uma diferença nas configurações de segurança.

Para poder enviar e-mails do script com o domínio do Gmail, precisamos ativar a parte de Permitir aplicativos menos seguros. Com o seguinte link https://myaccount.google.com/security?pli=1, entramos na parte de configuração de segurança. Em seguida, procuramos uma caixa onde diz “Permitir aplicativos menos seguros”, sua configuração deve ser assim:

A parte do código é a seguinte:

#GMAIL
server = smtplib.SMTP('smtp.gmail.com: 587')
msg['From'] = "******@gmail.com"
password = "*********"
Como construir o script PHP

Para o script php é necessário ter a classe phpmailer.php, esta classe é open source, pode ser facilmente encontrada online. Nós tentamos, nós baixamos esta classe do seguinte link https://github.com/KyleAMathews/phpmailer/blob/master/class.phpmailer.php.

O código php será o mesmo para os diferentes tipos de servidor de email, apenas alterando o servidor que podemos enviar o email.

<?php
require "class.phpmailer.php";
$mail = new PHPMailer();
//Luego tenemos que iniciar la validación por SMTP:
$mail->IsSMTP();
$mail->SMTPAuth = true;
--------------------------------------------------------------------------------------------------------------------------------------------------------------
//Servidor de gmail
$mail->Host = "smtp.gmail.com"; // A RELLENAR. Aquí pondremos el SMTP a utilizar. Por ej. mail.midominio.com
//Servidor de corpmail 
$mail->Host = "mail.planisys.net";
//Servidor de outlook
$mail->Host = "smtp.live.com";
---------------------------------------------------------------------------------------------------------------------------------------------------------------
$mail->Username = "********************"; // A RELLENAR. Email de la cuenta de correo. ej.info@midominio.com La cuenta de correo debe ser creada previamente.
$mail->Password = "********************"; // A RELLENAR. Aqui pondremos la contraseña de la cuenta de correo
$mail->Port = 587; // Puerto de conexión al servidor de envio.
$mail->From = "******************"; // A RELLENARDesde donde enviamos (Para mostrar). Puede ser el mismo que el email creado previamente.
$mail->FromName = "*****"; //A RELLENAR Nombre a mostrar del remitente.
$mail->AddAddress("*****************"); // Esta es la dirección a donde enviamos
$mail->IsHTML(true); // El correo se envía como HTML
$mail->Subject = 'Titulo'; // Este es el titulo del email.
$body = 'Hola mundo. Esta es la primer línea';
$body .= 'Aquí continuamos el mensaje'; $mail->Body = $body; // Mensaje a enviar. $exito = $mail->Send(); // Envía el correo.
if($mail)
{ echo 'El correo fue enviado correctamente.'; }
else{ echo 'Hubo un problema. Contacta a un administrador.'; }
?>