
Bueno, el título puede ser un poco engañoso, pero no pude encontrar una mejor manera de describir mi pregunta. Intenté configurar mi máquina para enviar correos electrónicos a través de la mail()
función php. Resulta que no puedo. Mi ISP está bloqueando el puerto 25, así que no hubo suerte. Luego, por curiosidad, configuré Thunderbird con una cuenta de Gmail y envié un mensaje a una cuenta de Hotmail. Esto funcionó. Tenía curiosidad por saber cómo se las arregla Thunderbird para enviar los correos electrónicos.
Vi en la configuración de la cuenta de Gmail en Thunderbird que está usando un puerto diferente, no el 25. Thunderbird parece establecer estos valores automáticamente, lo cual es bastante bueno. Hace un tiempo quería configurar una cuenta en Thunderbird y tuve que ingresar manualmente los valores del servidor SMTP y los valores IMAP/POP3, por lo que es bueno ver que ahora lo hacen automáticamente.
También revisé los registros de correo y nada había cambiado. Supongo que esto es una obviedad, ya que el correo electrónico no se envía mediante el sendmail de Postfix, sino por Gmail. ¿Está bien?
Bueno, mi pregunta es ¿cómo logra Thunderbird enviar correos electrónicos? y más importante aún, ¿puedo hacer algo similar para poder enviar correos electrónicos desde mis scripts php?
Me doy cuenta de que esta podría ser una pregunta "estúpida", pero realmente no sé nada sobre este asunto.
Y como ya estoy preguntando, ¿dónde puedo informarme sobre esto? ¿Lo enseñan en la escuela? ¿Quizás a los informáticos? ¿Cuál es un buen libro para iniciarse en este bonito mundo del correo electrónico, SMTP, POP3 y demás?
Respuesta1
Para enviar un correo electrónico, su cliente de correo (ya sea Thunderbird o su script PHP) debe conectarse a un servidor SMTP que pueda transmitir el correo electrónico a través de Internet para finalmente llegar al servidor de correo electrónico del destinatario. El puerto estándar para SMTP es 25, pero a veces se pueden utilizar otros puertos como 587 o 465, a menudo con algún tipo de cifrado como SSL.
El puerto y el cifrado a utilizar dependen del servidor SMTP que esté utilizando. Thunderbird, como mencionaste, puede detectar esto probando puertos y protocolos comunes. Para enviar correo electrónico a través de SSL desde un script PHP, puede utilizar, por ejemplo, elCorreo PERAextensión.
La información sobre cómo funcionan los protocolos de correo electrónico probablemente no debería considerarse de dominio público.WikipediaPor supuesto, tiene una descripción general, pero como usted dice, probablemente se recomiende un libro si desea profundizar más.
Respuesta2
Sé que resolviste esto, pero esta es una respuesta a la pregunta original: ¿cómo envía Thunderbird el correo?
El cliente Thunderbird incluye información de conexión para algunos proveedores de correo conocidos, incluidos (como ha visto) Gmail, Hotmail, Yahoo y probablemente algunos otros. La configuración sabría:
- Protocolo de entrada: POP3 o IMAP (lamentablemente, Thunderbird no puede funcionar con Exchange: Microsoft solo tiene licencia del protocolo Exchange para dispositivos móviles)
- Protocolo para salidas: prácticamente universalmente SMTP
- Puertos donde están los servicios.
- ¿Necesito autenticarme en el servidor SMTP? (Los servidores SMTP normalmente necesitan autenticación ahora, o de lo contrario proporcionarás más spam)
- ¿Cifrado? ¿TLS/SSL? ¿O es compatible con STARTTLS?
Entonces, cuando creaste tu cuenta, le dijiste a Thunderbird "[correo electrónico protegido]". Vio que era gmail.com y utilizó la configuración que conocía sobre la cuenta (IMAP/SSL en imap.gmail.com, SMTP/SSL en smtp.gmail.com, etc.)
Cuando envía un correo, Thunderbird sabe que necesita iniciar sesión en el servidor SMTP, activar el cifrado y luego enviar el mensaje con unformato muy específico.
En cuanto a aprendizaje, consulte elRFCS, son la última palabra en lo que viaja a través de los cables. Además, consulte los documentos de postfix, sendmail y otros MTA (agentes de transferencia de correo).