Estoy tratando de generar archivos EML desde PHP. ¿Hay alguna biblioteca que me permita crearlos fácilmente? Podría encontrar algún componente de ActiveX en Internet, pero preferiría usar algo más portátil.Biblioteca PHP para generar archivos de correo electrónico EML?
Respuesta
Terminé la construcción del mensaje MIME a mí mismo usando este tipo de plantilla, donde cada campo se sustituye por una variable TEMPLATE_<name>
:
From: TEMPLATE_FROM_ADDRESS
MIME-Version: 1.0
To: TEMPLATE_TO_ADDRESS
Subject: TEMPLATE_SUBJECT
Content-Type: multipart/mixed; boundary="080107000800000609090108"
This is a message with multiple parts in MIME format.
--080107000800000609090108
Content-Type: text/plain
TEMPLATE_BODY
--080107000800000609090108
Content-Type: application/octet-stream;name="TEMPLATE_ATTACH_FILENAME"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;filename="TEMPLATE_ATTACH_FILENAME"
TEMPLATE_ATTACH_CONTENT
--080107000800000609090108
Luego de crear el mensaje final es bastante sencillo utilizando str_replace
:
$content = file_get_contents("Template.eml");
$content = str_replace("TEMPLATE_FROM_ADDRESS", $fromEmail, $content);
$content = str_replace("TEMPLATE_TO_ADDRESS", $toEmail, $content);
// etc. for each template parameter
// Also don't forget to base64_encode the attachment content;
$content = str_replace("TEMPLATE_ATTACH_CONTENT", base64_encode($attachContent), $content);
información adicional sobre el archivo adjunto en este post: Attachment name and file extension not working in email *.eml
Creo que no necesita una biblioteca. Es sólo texto sin formato (por ejemplo http://bitdaddys.com/example1.eml)
Date: Sat, 12 Aug 2006 14:25:25 -0400
From: John Doe <[email protected]>
Subject: BitDaddys Software
To: [email protected]
Dear BitDaddys Corp.,
We have added your software to our approved list.
Thank you for your efforts.
Sincerely,
John Doe
Some Server Company
Puede texto que acaba de salida con cabeceras y guardarlo usando fwrite. Por adjuntos utilizan base64_encode()
como se indica here
Lo importante es que debe seguir la semántica de SMTP, es decir, CRLF al final de cada encabezado y una línea en blanco (terminada por CRLF) entre los encabezados y el cuerpo. El cuerpo se debe transferir codificado como 7bit ascii (o imprimible entre comillas). – symcbean
Utilice imap_savebody (parte de la biblioteca de imap http://us1.php.net/manual/en/function.imap-savebody.php) con nulo $ part_number. Crea un hermoso archivo .eml con una línea de código con el mensaje completo (nulo $ part_number = todas las partes ... no documentadas, pero funciona).
las otras dos soluciones dependen del formato del correo electrónico (solo un archivo adjunto y ninguna sección html en la primera solución, y solo texto en el segundo).
imap_savebody crea un archivo .eml perfecto sin importar el formato del correo electrónico entrante (siempre que sea una queja de RFC, por supuesto).
por 'section number' significa parámetro' $ part_number' – redexp
- 1. Crear un archivo .eml (correo electrónico) en Java
- 2. Cargando archivos .eml en javax.mail.Messages
- 3. PHP validación de correo electrónico
- 4. Archivos adjuntos de correo electrónico
- 5. Recomendaciones sobre el análisis de archivos .eml en C#
- 6. Recibir correo electrónico usando PHP
- 7. Biblioteca de Python para generar archivos flash
- 8. Biblioteca de Python para generar archivos VCF?
- 9. ¿Existe una biblioteca de correo electrónico con fluidez para C#?
- 10. PHP función de validación de correo electrónico
- 11. ¿Hay una biblioteca php para la validación de la dirección de correo electrónico?
- 12. ¿Cómo enviar archivos adjuntos de correo electrónico?
- 13. Colas de correo electrónico en php
- 14. Cómo descargar correo electrónico con PHP
- 15. Biblioteca PHP para generar archivos xdot a partir de archivos de puntos
- 16. php error de correo electrónico filter_var
- 17. Tuberías de correo electrónico con script php
- 18. PHP Envío de correo electrónico BCC
- 19. PHP enviar correo a varias direcciones de correo electrónico
- 20. cómo formatear el correo electrónico de php
- 21. envío de correo electrónico masivo usando PHP
- 22. PHP buscar una cadena para una dirección de correo electrónico
- 23. ¿Cómo validar un correo electrónico en PHP?
- 24. Biblioteca de plantillas de correo electrónico en Java
- 25. Generar correo electrónico HTML con imágenes incrustadas en Delphi
- 26. Enviar correo electrónico con saltos de línea mediante correo electrónico() en php
- 27. Enviar archivos eml guardados en el disco
- 28. ¿Buena biblioteca de python para generar archivos de audio?
- 29. Cómo enviar un correo electrónico con archivos adjuntos en Ir
- 30. TFS Generar alertas por correo electrónico al usuario [Solicitado por]
¿Desea crearlo desde cero o después de leer el correo electrónico con funciones imap? Tal vez imap_savebody() puede ayudar - http://www.csschat.com/archive/index.php/t-3287.html? – BartekR
Sí, necesito crearlo desde cero. Básicamente tengo un correo electrónico, título, cuerpo y archivo adjunto y necesito crear el EML para eso. –