gmime es un conjunto de utilidades para analizar y crear mensajes utilizando el Multipurpose Internet Mail Extension (MIME).
Como desarrollador y usuario de los clientes de correo electrónico, me había dado cuenta de que la gran mayoría de las soluciones de cliente de correo electrónico tenía menos-que satisfactoria implementaciones MIME. Más a menudo que no estos clientes de correo creada rotos mensajes MIME y / o serían incorrectamente intentar analizar un mensaje MIME restando así de todos los beneficios que MIME estaba destinado a proporcionar. Gmime tiene la intención de abordar este problema siguiendo la especificación MIME mientras que también proporciona a los programadores con un extremadamente fácil de usar interfaz de programación de aplicaciones
¿Qué hay de nuevo en esta versión:.
- Esta versión corrige configuración regional del sistema de detección charset y ahora controla los errores ERANGE de iconv (), que la versión de GNU Win32 de libiconv parece fijar (pero no está documentado).
¿Cuál es nuevo en la versión 2.2.27:
- configure.in: Versión topados a 2.2.27
- gmime / gmime-gpg-context.c (gpg_ctx_parse_status):. Trate EXPSIG, EXPKEYSIG y REVKEYSIG igual que los mensajes de estado GOODSIG / BADSIG en que todas ellas denotan una nueva información que firma
- gmime / gmime-stream-mem.c (stream_write): calcular correctamente el límite extremo de la corriente cuando bound_end es -1 .
- gmime / gmime-utils.h (GMIME_QP_ENCODE_LEN):. Fijo tener en acount la posibilidad de tener que forzar-wrap líneas a 72 caracteres +
- (GMIME_UUENCODE_LEN): Se ha corregido para evitar posibles desbordamientos de búfer .
¿Qué hay de nuevo en la versión 2.4.22:
- README: Bumped versión
- configure.in: Bumped versión de 2.4.22
- build / VS2008 / gmime.vcproj:. Bumped versión
- gmime / gmime-stream-mem.c (stream_write): calcular correctamente el límite extremo de la corriente cuando bound_end es -1 .
¿Qué hay de nuevo en la versión 2.5.4:
- gmime / internet-address.c (decode_address) : casos extremos Mango
- donde inptr llega al final de la cadena de entrada antes de tiempo debido a la
- una dirección con formato incorrecto.
- mime / gmime-pkcs7-context.c (pkcs7_get_validity): Refundido de la
- la lógica para calcular el estado firmante. También disminuyen
- lógica GMimeSignatureStatus.
- gmime / gmime-gpg-context.c (gpg_verify): Se ha eliminado la (roto)
- la lógica del cálculo de un GMimeSignatureStatus.
- (gpg_decrypt):. Igual
- (gpg_ctx_parse_signer_info): Actualización para el g_mime_signer_new ()
- Cambio API.
- gmime / gmime cripto-context.c (g_mime_signature_validity_new): No
- ya inicializa un miembro GMimeSignatureStatus.
- (g_mime_signature_validity_get_status):. Eliminada
- (g_mime_signature_validity_set_status):. Eliminada
- (g_mime_signer_new): Ahora tiene un GMimeSignerStatus para que yo pudiera
- deshacerse del estado NINGUNO defecto.
- gmime / gmime cripto-context.h (GMimeSignatureStatus):. Eliminada
- gmime / gmime cripto-context.c (g_mime_signer_new): Inicializar
- pubkey_algo y hash_algo.
- (g_mime_signer_ [g, s] et_pubkey_algo):. Implementado
- (g_mime_signer_ [g, s] et_hash_algo):. Renombrado de [g, s] et_hash ()
- gmime / gmime cripto-context.h (GMimeCryptoPubKeyAlgo): Definido
- enum.
- gmime / gmime-pkcs7-context.c (pkcs7_get_validity): Anote el
- picadillo y pubkey utilizados en la GMimeSigner.
- gmime / gmime-gpg-context.c (gpg_ctx_parse_signer_info): Record
- el algoritmo pubkey utilizado por el firmante.
- gmime / gmime multiparte-encrypted.c (g_mime_multipart_encrypted_encrypt):
- Ahora toma un argumento algoritmo de hash que pasa a lo largo de
- g_mime_crypto_context_encrypt ().
- gmime / gmime-gpg-context.c (gpg_ctx_get_argv): Al firmar y
- encriptación, pase el algoritmo digest a gpg en la línea de comandos.
- (gpg_encrypt): establezca el ID de hash en el GpgCtx .
- gmime / gmime cripto-context.c (g_mime_crypto_context_encrypt):
- Ahora toma un argumento algoritmo hash.
- gmime / gmime-gpg-context.c (gpg_hash_from_id): Nueva función
- mapear los numéricos de ID de hash que gpg usa para GMimeCryptoHash
- ids.
- (gpg_ctx_parse_signer_info): Extraer el algoritmo hash utilizado por
- firmante.
- (gpg_ctx_parse_status): Se ha actualizado para utilizar gpg_hash_from_id () .
- gmime / gmime cripto-context.c (g_mime_signer_set_hash): Nuevo
- para establecer el algoritmo de hash utilizado por el firmante.
- (g_mime_signer_get_hash): Nueva función para obtener el algoritmo de hash
- utilizado por el firmante.
- gmime / gmime cripto-contexto [c, h]:... Renombrado de gmime-cifrado-contexto [c, h]
- gmime / gmime multiparte-encrypted.c (g_mime_multipart_encrypted_decrypt):
- mensajes de error actualizado para que sea más consistente.
- gmime / gmime multiparte-signed.c (g_mime_multipart_signed_verify):
- Asegúrese de establecer un error en todos los casos devuelva NULL.
- gmime / gmime-cifrado-context.c (g_mime_signer_get_ *): Estos
- Funciones todos ahora toman un GMimeSigner const *.
- gmime / gmime-gpg-context.c (GpgCtx): Ya no tiene un sigfile
- miembro. En su lugar contiene una sigstream y passwd_fd ahora rebautizado
- para secret_fd y usado tanto para enviar gpg passwd del usuario como
- , así como para el envío gpg la firma digital en la verificación.
- (gpg_ctx_new): Se ha actualizado para los nuevos miembros de la estructura .
- (gpg_ctx_set_sigstream):. Reemplaza gpg_ctx_set_sigfile ()
- (gpg_ctx_free):. Actualización para los nuevos miembros de la estructura
- (gpg_ctx_get_argv): Modificar nuestra línea de comandos --verify para que podamos
- puede pas gpg la firma digital sin antes escribir a
- disco. También modificado para volver char ** en lugar de un GPtrArray a
- simplificar las cosas.
- (gpg_ctx_op_start): Modificado para crear también más tubos en VERIFICAR
- Modo.
- (gpg_ctx_op_step): Modificado para transmitir la firma digital en
- gpg.
- (gpg_verify): No escriba la firma digital en el disco - en su lugar,
- que ahora stream directamente a gpg.
- gmime / gmime-message.c (g_mime_message_get_body): Nueva función para
- tratar de adivinar qué parte (o de varias partes / alternativo) representa la
- cuerpo del mensaje.
- gmime / charset-map.c: Según rfc1557, se sugiere que
- euc-kr ser usado para los encabezados ya que muchos programas de correo coreanos no pueden manejar
- base64 o citado imprimible codificada iso-2022-kr. Basado en esto y
- el bug # 629235, yo sólo voy a caer iso-2022-kr.
- gmime / gmime-utils.c (g_mime_utils_header_decode_text): En el
- Caso solución, si no encontramos un marcador final, restablecer nuestra inptr
- para el comienzo de la palabra más reciente * más 2 * (para saltar sobre
- el líder & quot;? = & Quot;), no al principio del texto de entrada. También necesita li>
- para reiniciar nuestro estado ascii.
- (g_mime_utils_header_decode_phrase): En el caso de solución, si
- no encontrar un marcador final, restablecer nuestra inptr al inicio de la etiqueta li>
- última palabra * más 2 *, para saltar sobre el líder & quot;? = & Quot;.
- gmime / gmime-encodings.c (g_mime_encoding_quoted_encode_close):
- Si el último carácter de entrada no es un n, anexar una & quot; = n & quot; secuencia.
- gmime / gmime-charset.c: Mark known_iconv_charsets [] como
- estática. También marque miembros de cadena de varias estructuras privadas como
- const.
- configure.ac: Bump locuaz requisito versión para
- g_set_error_literal ().
- gmime / internet-address.c (group_to_string): No bloquearse si la
- nombre de grupo no está definido. Gracias a Damian Pietras para este parche.
- gmime / gmime-utils.c (g_mime_utils_header_decode_phrase):
- Implementar el mismo truco RFC2047-solución como la que se encuentra en
- g_mime_utils_header_decode_text ().
- gmime / gmime-encodings.c (g_mime_encoding_base64_decode_step):
- Necesidad de mantener el estado para realizar un seguimiento del número de = 's que hemos respaldado
- a lo largo en caso de que cruza las fronteras de amortiguamiento.
- gmime / gmime-param.c (decode_token): Hacer menos estricta a fin de
- manejar los valores límite no cotizados que contienen '=' (y otra ilegal
- caracteres).
- gmime / internet-address.c (_internet_address_set_name): No
- decodificación / fin de la cita el nombre. La documentación para todas las funciones que requieren
- esto asume la cadena del nombre está en su forma decodificada ya.
- (_ internet_address_decode_name): Nueva función interna que
- decodifica una cadena y lo establece como el nombre en la InternetAddress.
- (decode_address): reescrito para ser aún más liberal en lo que
- acepta.
- gmime / gmime multiparte-encrypted.c (g_mime_multipart_encrypted_decrypt):
- No unref el contenido parte mimo objeto cifrados cuando el
- de tipo de contenido no coincide con application / octet-stream,
- g_mime_multipart_get_part () no ref partes que devuelve. También
- que configurar un error cuando esto sucede.
Algoritmos
¿Qué hay de nuevo en la versión 2.4.21:
- gmime / internet-address.c (decode_address) : casos extremos Mango
- donde inptr llega al final de la cadena de entrada antes de tiempo debido a la
- una dirección con formato incorrecto.
- gmime / gmime multiparte-encrypted.c (g_mime_multipart_encrypted_decrypt):
- mensajes de error actualizado para que sea más consistente.
- gmime / gmime multiparte-signed.c (g_mime_multipart_signed_verify):
- Asegúrese de establecer un error en todos los casos devuelva NULL.
- gmime / gmime-cifrado-context.c (g_mime_signer_get_ *): Estos
- Funciones todos ahora toman un GMimeSigner const *.
- gmime / gmime-gpg-context.c (GpgCtx): Ya no tiene un sigfile
- miembro. En su lugar contiene una sigstream y passwd_fd ahora rebautizado
- para secret_fd y usado tanto para enviar gpg passwd del usuario como
- , así como para el envío gpg la firma digital en la verificación.
- (gpg_ctx_new): Se ha actualizado para los nuevos miembros de la estructura .
- (gpg_ctx_set_sigstream):. Reemplaza gpg_ctx_set_sigfile ()
- (gpg_ctx_free):. Actualización para los nuevos miembros de la estructura
- (gpg_ctx_get_argv): Modificar nuestra línea de comandos --verify para que podamos
- puede pas gpg la firma digital sin antes escribir a
- disco. También modificado para volver char ** en lugar de un GPtrArray a
- simplificar las cosas.
- (gpg_ctx_op_start): Modificado para crear también más tubos en VERIFICAR
- Modo.
- (gpg_ctx_op_step): Modificado para transmitir la firma digital en
- gpg.
- (gpg_verify): No escriba la firma digital en el disco - en su lugar,
- que ahora stream directamente a gpg.
¿Qué hay de nuevo en la versión 2.4.19:
- Este comunicado se fijó para construir en versiones anteriores de GLib (ya en 2.12).
- Soluciones provisionales se aplicaron para las direcciones de correo electrónico RFC2047 codificados rotos.
- Un borde caso decodificador base64 error también fue corregido.
Requisitos :
- Glib & gt; = 1.2.x
Comentarios que no se encuentran