MecatronicaUncu / Red-Social-Asociacion

A small open source social network for any small community
GNU General Public License v2.0
3 stars 1 forks source link

Email server #113

Closed francoa closed 8 years ago

francoa commented 8 years ago

Aviso que cambié la contraseña porque era muy fácil e hubo tentativas de conexión desde San Pablo. Detalles por privado.

De todas formas la contraseña está literalmente escrita en el repo, así que por ahora sería bueno no subirla.

En fin, a lo que nos compete. Estuve leyendo sobre cómo hacer esto (http://arstechnica.com/information-technology/2014/02/how-to-run-your-own-e-mail-server-with-your-own-domain-part-1/) y parece que es bastante complicado. Estoy empezando a leer. Alguno tiene experiencia en este aspecto?

francoa commented 8 years ago

Y en cuanto a la falla que encontrabas Fer, se trata de una verificación adicional que pide Google. Algo así como un captcha que hay que poner para que registre la aplicación como segura.

fcladera commented 8 years ago

Sí, yo tengo mi propio servidor de email con postfix+dovecot (con DKIM, DMARC, SPF). Igual esto nunca se hace así. Los servidores de email son algo bastante frágil, y NO podemos crear un servidor de email para que nuestra aplicación quiera enviar emails.

Lo que se hace en general es configurar un servidor de mail externo (en un archivo de configuración del programa). Además, hay que crear una variable que sea

mailServedConfigured = true/false;

La parte de email no se puede testear automáticamente, hay que escribir un archivo de configuración usando un servidor específico para ver si funciona.

Igual, si probás que funciona la función/plugin que usás para mandar email una vez, y tenés la variable mailServerConfigured una buena idea para probar es hacer un dump del body del mensaje que vas a enviar a la terminal, o a un archivo.

francoa commented 8 years ago

Ah yo había entendido por lo que habíamos hablado con el rulo que eso querías. Pero ahora que leo el mensaje del rulo el tampoco parecía muy seguro sobre qué era lo que querías jaajaj

francoa commented 8 years ago

Entonces, como para recapitular, me decís que podemos seguir usando el mismo servidor, sólo que configurándolo a través de algún archivo, algo así como lo que se discutía en #103

fcladera commented 8 years ago

Y ya a modo de comentario, no tiene nada que ver con el proyecto. El artículo de ARS es bastante bueno si a alguien le interesa crear su propio servidor (for fun). Pero configurarlo es bastante complicado. Lo bueno es que aprendés como funciona el email por dentro, podés hacer cosas locas como filtrados de mail muy precisos, respuestas automáticas. Además, en teoría, es la mejor manera de escapar de que la NSA te lea los correos (claro, si tuvieras tu servidor de email en tu casa). Lo malo es que lleva bastante tiempo configurarlo (calculo que el server completo fueron como 5 o 6 días de configuración). Y administrarlo, para que no te tomen como spammer, arreglar cuando alguien te toma como spammer, y arriesgarte a que tus emails no lleguen a destino.

francoa commented 8 years ago

Bueno, la última hora y media entonces me la pasé leyendo al pedo jaja

fcladera commented 8 years ago

En realidad tendría que haber en algún lado algo que sea parecido a esto tutuploadsemail_settings Eso es un archivo de config de una app en php. Ahí especifica algunas variables útiles

francoa commented 8 years ago

o sea, decís que en vez de usar nodemailer desde users.js utilicemos alguno instalado directamente en el linux server (?)

fcladera commented 8 years ago

Por ejemplo, si yo quisiera configurar para usar gmail debería ser algo como

mailfrom = midireccion@gmail.com
fromName = EDT Fing - El mejor EDT del mercado
smtpUser = midireccion@gmail.com
smtppass = superContraseñaUltaSegura
smtphost = smtp.gmail.com

(aclaro que estos valores son a modo de ejemplo, dependerá del plugin que uses para enviar smtp (o si node lo trae nativo, de la función) los valores que hay que poner).

Obviamente, los valores del servidor de mail no tienen que estar en el repo, los configura el usuario antes de ir a producción.

francoa commented 8 years ago

ah ahi entendí

fcladera commented 8 years ago

No no! Si node ya tiene un nodemailer, usemos ese!

fcladera commented 8 years ago

Y lo último es que cuando escribís tu código para enviar un email, podrías tener una función wrapper de nodemailer que sea algo así (pseudo pseudo code haha)

mailerWrapper(string msg, string title, string direccion){
    if(mailServedConfigured)
        nodemailer(msg, title, direccion, ... otros parametros de config del server sacados del archivo de conf...);
    else
        // print a consola, a archivo de texto, a console.log()?
}
francoa commented 8 years ago

oka

andresmanelli commented 8 years ago

Pregunta, esto queda andando con #117 ? Porque lo que está online todavía no envía emails, pero por ahí es porque lo que está corriendo es viejo?

francoa commented 8 years ago

Y pasa lo mismo que antes. No va a funcionar online hasta demostrar con ese captcha que comentaba en otro issue que es una aplicación "segura". O que dejemos de usar gmail

fcladera commented 8 years ago

Nunca vamos a poder hacer un deploy sin configurar mínimamente el servidor de email. Por eso yo insistía en que para pruebas, la función de email debería escribir el contenido del mensaje a console.log (por ejemplo), y no mandar el mensaje efectivamente.

Sent from my Android device with K-9 Mail. Please excuse my brevity.