gmime é um conjunto de utilitários para análise e criação de mensagens usando o Multipurpose Internet Mail Extension (MIME).
Como um desenvolvedor e usuário de clientes de correio eletrônico, que eu tinha vindo a perceber que a grande maioria das soluções de cliente de email teve menos do que satisfatório MIME implementações. Na maioria das vezes esses clientes de email criada quebrado mensagens MIME e / ou seria incorretamente tenta analisar uma mensagem MIME subtraindo, assim, de todos os benefícios que MIME era para fornecer. Gmime destina-se a abordar esta questão, seguindo a especificação MIME, proporcionando também programadores com um extremamente fácil de usar a interface de programação de aplicativo
O que é novo nesta versão:.
- Este correções versão local do sistema de detecção de charset e agora lida com erros ERANGE de iconv (), que a versão da GNU Win32 de libiconv parece definido (mas não está documentado).
O que é novo na versão 2.2.27:
- configure.in: Versão adiado para 2.2.27
- gmime / gmime-gpg-context.c (gpg_ctx_parse_status):. Trate EXPSIG, EXPKEYSIG e REVKEYSIG o mesmo que as mensagens de status GOODSIG / BadSig em que todos eles denotam uma informação nova signatário
- gmime / gmime-stream-mem.c (stream_write): corretamente calcular a fronteira final do fluxo quando bound_end é -1 .
- gmime / gmime-utils.h (GMIME_QP_ENCODE_LEN.): Fixo para tome em consideração a possibilidade de ter de linhas de quebra de forçá-at 72 + personagens
- (GMIME_UUENCODE_LEN): Fixo para evitar possíveis estouros de buffer .
O que é novo na versão 2.4.22:
- README: Batido versão
- configure.in: Versão adiado para 2.4.22
- construir / vs2008 / gmime.vcproj:. Colidido versão
- gmime / gmime-stream-mem.c (stream_write): corretamente calcular a fronteira final do fluxo quando bound_end é -1 .
O que é novo na versão 2.5.4:
- gmime / internet-address.c (decode_address) : casos de ponta Handle
- onde inptr chega ao fim da cadeia de entrada prematuramente devido a
- um endereço incorreto.
- mime / gmime-pkcs7-context.c (pkcs7_get_validity): refez o
- lógica para calcular o estado signatário. Também caiu
- lógica GMimeSignatureStatus.
- gmime / gmime-gpg-context.c (gpg_verify): Removido o (quebrado)
- lógica de cálculo de uma GMimeSignatureStatus.
- (gpg_decrypt):. Same
- (gpg_ctx_parse_signer_info): Atualizado para o g_mime_signer_new ()
- mudança API.
- gmime / gmime-crypto-context.c (g_mime_signature_validity_new): Não
- inicializa mais um membro GMimeSignatureStatus.
- (g_mime_signature_validity_get_status):. Removed
- (g_mime_signature_validity_set_status):. Removed
- (g_mime_signer_new): Agora tem uma GMimeSignerStatus para que eu pudesse
- se livrar do estado NONE padrão.
- gmime / gmime-crypto-context.h (GMimeSignatureStatus):. Removed
- gmime / gmime-crypto-context.c (g_mime_signer_new): Inicializar
- pubkey_algo e hash_algo.
- (g_mime_signer_ [g, s] et_pubkey_algo):. Implementado
- (g_mime_signer_ [g, s] et_hash_algo):. Renomeado de [g, s] et_hash ()
- gmime / gmime-crypto-context.h (GMimeCryptoPubKeyAlgo): Definido
- enum.
- gmime / gmime-pkcs7-context.c (pkcs7_get_validity): Grave o
- de hash e pubkey algoritmos usados na GMimeSigner.
- gmime / gmime-gpg-context.c (gpg_ctx_parse_signer_info): Grave
- o algoritmo pubkey usado pelo signatário.
- gmime / gmime-multipart-encrypted.c (g_mime_multipart_encrypted_encrypt):
- Agora usa um argumento algoritmo de hash que se passa ao longo de
- g_mime_crypto_context_encrypt ().
- gmime / gmime-gpg-context.c (gpg_ctx_get_argv): Ao assinar e
- criptografia, passe o algoritmo de resumo aos BPM na linha de comando.
- (gpg_encrypt): Defina o ID de haxixe no GpgCtx .
- gmime / gmime-crypto-context.c (g_mime_crypto_context_encrypt):
- Agora usa um argumento algoritmo de hash.
- gmime / gmime-gpg-context.c (gpg_hash_from_id): Nova função
- mapeando os numéricos identificação hash do que gpg usa para GMimeCryptoHash
- ids.
- (gpg_ctx_parse_signer_info): Extraia o algoritmo de hash usado por
- o assinante.
- (gpg_ctx_parse_status): Atualizado para usar gpg_hash_from_id () .
- gmime / gmime-crypto-context.c (g_mime_signer_set_hash): New
- função para definir o algoritmo de hash usado pelo signatário.
- (g_mime_signer_get_hash): Nova função para obter o algoritmo de hash
- usado pelo signatário.
- gmime / gmime-crypto-contexto [c, h]:... Renomeado de gmime-cifra ao contexto [c, h]
- gmime / gmime-multipart-encrypted.c (g_mime_multipart_encrypted_decrypt):
- mensagens de erro atualizado para ser mais consistente.
- gmime / gmime-multipart-signed.c (g_mime_multipart_signed_verify):
- Certifique-se de definir um erro em todos os casos de retornar NULL.
- gmime / gmime-cifra-context.c (g_mime_signer_get_ *): Estes
- todas as funções agora tomar uma GMimeSigner const *.
- gmime / gmime-gpg-context.c (GpgCtx): não tem mais um sigfile
- membro. Em vez disso, contém um sigstream e passwd_fd é agora renomeado
- para secret_fd e utilizado tanto para o envio de gpg passwd do usuário como
- bem como para o envio de gpg a assinatura digital ao verificar.
- (gpg_ctx_new): Atualizado para os novos membros da estrutura .
- (gpg_ctx_set_sigstream):. Substitui gpg_ctx_set_sigfile ()
- (gpg_ctx_free.): Atualizado para os novos membros da estrutura
- (gpg_ctx_get_argv): Modificar a nossa linha de comando --verify de modo que nós
- pode pas gpg a assinatura digital sem antes de escrevê-lo para
- disco. Também modificado para retornar char ** em vez de um GPtrArray para
- simplificar as coisas.
- (gpg_ctx_op_start): Modificado para também criar mais tubos em VERIFIQUE
- modo.
- (gpg_ctx_op_step): Modificado para transmitir a assinatura digital para
- gpg.
- (gpg_verify): Não escreva a assinatura digital para o disco - em vez disso,
- nós agora transmiti-lo directamente para gpg.
- gmime / gmime-message.c (g_mime_message_get_body): Nova função para
- tentar adivinhar qual parte (ou multipart / alternative) representa o
- corpo da mensagem.
- gmime / charset-map.c: De acordo com rfc1557, sugere-se que
- euc-kr ser usado para cabeçalhos uma vez que muitos utentes coreanos não consegue lidar
- base64 ou citados-imprimíveis codificado ISO-2022-R. Com base neste e
- bug # 629235, eu só vou soltar iso-2022-R.
- gmime / gmime-utils.c (g_mime_utils_header_decode_text): No
- caso solução alternativa, se não encontrar um marcador de fim, redefinir nossa inptr
- para o início da palavra mais recente * mais 2 * (pular
- a principal & quot;? = & Quot;), e não o início do texto de entrada. Também precisa
- para repor nosso estado ascii.
- (g_mime_utils_header_decode_phrase): No caso solução alternativa, se nós
- não encontrar um marcador de fim, redefinir nossa inptr para o início do
- palavra mais recente * mais 2 *, para pular o líder & quot;? = & Quot;.
- gmime / gmime-encodings.c (g_mime_encoding_quoted_encode_close):
- Se o último caractere de entrada não é um n, anexe uma & quot; = n & quot; sequência.
- gmime / gmime-charset.c: Mark known_iconv_charsets [] como
- estática. Marque também membros de cordas de várias estruturas privadas como
- const.
- configure.ac: Colisão glib exigência versão para
- g_set_error_literal ().
- gmime / internet-address.c (group_to_string): Não falhar se o
- nome do grupo é desactivado. Graças a Damian Pietras para este patch.
- gmime / gmime-utils.c (g_mime_utils_header_decode_phrase):
- Implementar o mesmo corte RFC2047-solução como a encontrada em
- g_mime_utils_header_decode_text ().
- gmime / gmime-encodings.c (g_mime_encoding_base64_decode_step):
- Necessidade de manter estado para manter o controle do número de = 's temos apoiado
- fora sobre caso que ultrapassa as fronteiras de buffer.
- gmime / gmime-param.c (decode_token): Faça menos rigoroso, a fim de
- lidar com valores de limite não cotadas que contenham '=' (e outros ilegal
- caracteres).
- gmime / internet-address.c (_internet_address_set_name): Não
- decodificação / fecha aspas o nome. Os documentos para todas as funções que chamam
- este assumir a cadeia de nome está na sua forma decodificada já.
- (_ internet_address_decode_name): Nova função interna que
- decodifica uma string e define-o como o nome no InternetAddress.
- (decode_address): reescrito para ser ainda mais liberal no que ela
- aceita.
- gmime / gmime-multipart-encrypted.c (g_mime_multipart_encrypted_decrypt):
- Não UNREF o conteúdo do objeto mime parte criptografadas quando o
- tipo de conteúdo não corresponde application / octeto de fluxo,
- g_mime_multipart_get_part () não ref partes ele retorna. Também
- precisa definir um erro quando isso acontece.
O que é novo na versão 2.4.21:
- gmime / internet-address.c (decode_address) : casos de ponta Handle
- onde inptr chega ao fim da cadeia de entrada prematuramente devido a
- um endereço incorreto.
- gmime / gmime-multipart-encrypted.c (g_mime_multipart_encrypted_decrypt):
- mensagens de erro atualizado para ser mais consistente.
- gmime / gmime-multipart-signed.c (g_mime_multipart_signed_verify):
- Certifique-se de definir um erro em todos os casos de retornar NULL.
- gmime / gmime-cifra-context.c (g_mime_signer_get_ *): Estes
- todas as funções agora tomar uma GMimeSigner const *.
- gmime / gmime-gpg-context.c (GpgCtx): não tem mais um sigfile
- membro. Em vez disso, contém um sigstream e passwd_fd é agora renomeado
- para secret_fd e utilizado tanto para o envio de gpg passwd do usuário como
- bem como para o envio de gpg a assinatura digital ao verificar.
- (gpg_ctx_new): Atualizado para os novos membros da estrutura .
- (gpg_ctx_set_sigstream):. Substitui gpg_ctx_set_sigfile ()
- (gpg_ctx_free.): Atualizado para os novos membros da estrutura
- (gpg_ctx_get_argv): Modificar a nossa linha de comando --verify de modo que nós
- pode pas gpg a assinatura digital sem antes de escrevê-lo para
- disco. Também modificado para retornar char ** em vez de um GPtrArray para
- simplificar as coisas.
- (gpg_ctx_op_start): Modificado para também criar mais tubos em VERIFIQUE
- modo.
- (gpg_ctx_op_step): Modificado para transmitir a assinatura digital para
- gpg.
- (gpg_verify): Não escreva a assinatura digital para o disco - em vez disso,
- nós agora transmiti-lo directamente para gpg.
O que é novo na versão 2.4.19:
- Este lançamento foi fixada para construir em versões mais antigas do GLib (já em 2.12).
- Soluções alternativas foram implementadas para endereços de e-mail codificado em RFC2047 quebrados.
- Uma aresta caso decodificador base64 bug também foi corrigido.
Requisitos :
- Glib & gt; = 1.2.x
Comentários não encontrado