Re: line breaks in text attachments
"Stanislaw T. Findeisen" <[email protected]> Sat, 10 Nov 2007 11:46:48 +0100
| Newsgroups | gmane.mail.libetpan.user |
|---|---|
| Message-ID | <[email protected]> |
Well, when there is no Content-Disposition header at all, the problem
seems to be the same.
Dinh, if you know how to fix it please tell me that and include that fix
in next release.
Stanislaw T. Findeisen wrote:
> Hello
>
> I am experiencing problems with line breaks in text attachments. I wrote
> a sample program to demonstrate this problem:
>
> =========================================================
> /**
> * Based on compose-msg.c
> */
>
> #include <stdlib.h>
> #include <string.h>
>
> #include <libetpan/libetpan.h>
>
> struct mailimf_fields * build_fields() {
> const char * subject = "line breaks";
>
> struct mailimf_mailbox_list * from = mailimf_mailbox_list_new_empty();
> struct mailimf_address_list * to = mailimf_address_list_new_empty();
>
> mailimf_mailbox_list_add_parse(from, "DINH Viet Hoa
> <[email protected]>");
> mailimf_address_list_add_parse(to, "Paul <claws-0/[email protected]>");
>
> struct mailimf_fields * new_fields = mailimf_fields_new_with_data(from,
> NULL, NULL, to, NULL, NULL, NULL, NULL, strdup(subject));
> return new_fields;
> }
>
> int main(int argc, char ** argv) {
> const char * attachmentFilename = "file-1.txt";
> const char * sampleText1 = "ab\ncd";
> const char * sampleText1Charset = "iso-8859-1";
> const int sampleText1Length = strlen(sampleText1);
>
> printf("Sample text length is: %d\n", sampleText1Length);
> printf("Sample text is: %s\n", sampleText1);
>
> // start the message
> struct mailimf_fields * fields = build_fields();
> struct mailmime * message = mailmime_new_message_data(NULL);
> mailmime_set_imf_fields(message, fields);
>
> // build attachment
> struct mailmime_fields * mime_fields =
> mailmime_fields_new_filename(MAILMIME_DISPOSITION_TYPE_ATTACHMENT,
> strdup(attachmentFilename), MAILMIME_MECHANISM_QUOTED_PRINTABLE);
> struct mailmime_content * mime_content =
> mailmime_content_new_with_str("text/plain");
> struct mailmime_parameter * mime_param =
> mailmime_param_new_with_data("charset", strdup(sampleText1Charset));
> clist_append(mime_content->ct_parameters, mime_param);
>
> struct mailmime * mime_sub = mailmime_new_empty(mime_content,
> mime_fields);
> mailmime_set_body_text(mime_sub, strdup(sampleText1),
> sampleText1Length);
>
> // add attachment to the message
> mailmime_smart_add_part(message, mime_sub);
>
> // write the message out
> printf("==== Printing the message:\n\n");
> int col = 0;
> mailmime_write(stdout, &col, message);
> mailmime_free(message);
> printf("#DONE\n");
>
> return 0;
> }
> =========================================================
>
> The output of this program on my computer is:
>
> =========================================================
> Sample text length is: 5
> Sample text is: ab
> cd
> ==== Printing the message:
>
> Date: Sat, 10 Nov 2007 10:57:56 +0100
> From: DINH Viet Hoa <[email protected]>
> To: Paul <claws-0/[email protected]>
> Message-ID: <etPan.473580a4.6b8b4567.2ecb@thinkpad>
> Subject: line breaks
> MIME-Version: 1.0
> Content-Type: text/plain; charset="iso-8859-1"
> Content-Transfer-Encoding: quoted-printable
> Content-Disposition: attachment; filename="file-1.txt"
>
> ab
> #DONE
> =========================================================
>
> It seems that the last line is cut out.
>
> When using "sample text\nwith\nseveral\nlines." as a sample text, the
> last line is being cut also.
>
> With different encodings like utf-8 the problem was the same.
>
> Am I doing anything wrong, or is this a bug?
>
> Thanks.
>
> STF
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/