From de180f6cbbabda73d445f802e83e12696bffdab6 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Thu, 11 Jul 2002 22:30:51 +0000 Subject: Fixes bug #27672 2002-07-11 Jeffrey Stedfast Fixes bug #27672 * camel-mime-filter-bestenc.c: Conditionally #include * camel-mime-filter-linewrap.c: Same here... although we could probably just get rid of this filter? We don't seem to use it anywhere since we try to QP/Base64 encode any text parts with long lines. Besides, we couldn't use this filter for SMTP anyway since we can't risk possibly linewrapping a binary mime part. I dunno, maybe this could be useful in the composer though? *shrug* * providers/smtp/camel-smtp-transport.c (smtp_data): Always call camel_mime_message_set_best_encoding() even if the server allows 8BITMIME and even if we don't have any 8bit parts because we may have parts with long lines (>998 octets) which also need to be encoded. * camel-mime-message.c (check_8bit): Don't forget to check for the binary encoding here as well. svn path=/trunk/; revision=17428 --- camel/providers/smtp/camel-smtp-transport.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'camel/providers') diff --git a/camel/providers/smtp/camel-smtp-transport.c b/camel/providers/smtp/camel-smtp-transport.c index 7e5eddb6a0..b2b31bb922 100644 --- a/camel/providers/smtp/camel-smtp-transport.c +++ b/camel/providers/smtp/camel-smtp-transport.c @@ -39,7 +39,6 @@ #undef MIN #undef MAX #include "camel-mime-filter-crlf.h" -#include "camel-mime-filter-linewrap.h" #include "camel-stream-filter.h" #include "camel-smtp-transport.h" #include "camel-mime-message.h" @@ -1137,6 +1136,8 @@ static gboolean smtp_data (CamelSmtpTransport *transport, CamelMimeMessage *message, gboolean has_8bit_parts, CamelException *ex) { /* now we can actually send what's important :p */ + CamelBestencRequired required = CAMEL_BESTENC_GET_ENCODING; + CamelBestencEncoding enctype = CAMEL_BESTENC_BINARY; char *cmdbuf, *respbuf = NULL; CamelStreamFilter *filtered_stream; CamelMimeFilter *crlffilter; @@ -1144,11 +1145,17 @@ smtp_data (CamelSmtpTransport *transport, CamelMimeMessage *message, gboolean ha GSList *h, *bcc = NULL; int ret; - /* if the message contains 8bit mime parts and the server - doesn't support it, encode 8bit parts to the best - encoding. This will also enforce an encoding to keep the lines in limit */ + /* if the message contains 8bit/binary mime parts and the server + doesn't support it, set our required encoding to be 7bit */ if (has_8bit_parts && !(transport->flags & CAMEL_SMTP_TRANSPORT_8BITMIME)) - camel_mime_message_encode_8bit_parts (message); + enctype = CAMEL_BESTENC_7BIT; + + /* FIXME: should we get the best charset too?? */ + /* Changes the encoding of any 8bit/binary mime parts to fit + within our required encoding type and also force any text + parts with long lines (longer than 998 octets) to wrap by + QP or base64 encoding them. */ + camel_mime_message_set_best_encoding (message, required, enctype); cmdbuf = g_strdup ("DATA\r\n"); -- cgit v1.2.3